2011-05-12 44 views
3

我已經讀了大量的帖子和網頁試圖找出。我主要工作。我有一個.htaccess文件設置,我試圖重定向(301)我的網站中的任何頁面從非www到www版本。301重定向非www www不總是工作

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

它似乎從基地的網址工作。但是,它不會重定向到子頁面。

這工作:

example.com - > www.example.com

這不起作用:

example.com/foo.html - > www.example.com/foo html的

任何幫助,將不勝感激

+0

嗯...相當一個益智遊戲我在我的網站上使用幾乎相同的重寫,它工作正常。你可以嘗試添加RewriteBase /但我不認爲它應該有所作爲。 – 2011-05-12 06:06:04

+0

確實很奇怪......你可以在這裏試試一個實例 http://freetypes.com/foo.html 如果你刪除了「foo.html」,你會發現它開始工作。 – Randy 2011-05-12 11:24:51

+0

啊我認爲你必須在你的htaccess中有另一個規則來搞亂它。例如,如果我去[freetypes.com/bar.html](http://freetypes.com/bar.html)它將正確轉發到www和404頁面。 – 2011-05-12 12:39:37

回答

0
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
0

這裏是我的原則是,在我的督促環境中工作:

# If domain name without "www", add them: 
RewriteCond %{HTTP_HOST} ^mydomainname\.(fr|com|net|org|eu) [NC] 
# without www => force redirection: 
RewriteRule (.*) http://www.mydomainname.%1$1 [QSA,R=301,L]