2013-05-15 40 views
0

案例:的.htaccess不会重定向非根页

www.domain.com重定向到domain.com

www.domain.com/somecategory不重定向到域.com/somecategory

页面上的链接是相对的,这是谷歌的问题,因为所有的www链接现在都是重复的内容。有没有办法解决这个问题,并强制所有WWW页面上的非www重定向,无论它是否是root?

的htaccess:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1$1 [R=301,L] 

我也试过

RewriteBase/
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 
+0

你搜索的网站?如果是,那么你遇到的具体问题是什么? – PeeHaa

+0

是的,我搜索了该网站。具体来说,如果我直接链接到非www,我的子目录不会重定向到非www。他们只能通过root进行重定向。 – techii

+0

我不明白这怎么不是一个有效的问题。基本上有数百个线程将www指定为非www或非www用于www,但没有涉及这个特定问题。请详细说明你的flyby -1:/ – techii

回答

1

我已经改变了你的代码:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

而且它似乎是工作。

如果没有重写规则的斜杠,我被重定向到的domain.compage代替domain.com/page

+0

是的,这是一个错字。您使用的代码实际上正在atm网站上使用。我倾向于这不是一个htaccess的问题,而是PHP后端的问题。考虑到问题很可能不在这里,我会将其设置为正确答案。谢谢你 – techii

+0

通过sectoreven contactform向你发送helprequest。 – techii

+0

已回复。我能想到的唯一原因是,较长的URL(包含路径)首先触发另一个规则。尝试将此规则放在列表中。如果没有帮助,请尝试删除不必要的规则。 – DannyB