2013-05-15 77 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