2009-11-12 77 views
0

以下情況如何不同?忽略域名。這兩個重寫是否相同?

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


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

區別是「^」?

我基本上想要做的就是將我的網站設置爲http://yourdomain.com,並且永遠不會顯示www。對於一個開始它的更短和它對SEO的好處,因爲我的網站不會被評爲兩個網站。一個與www和一個沒有。

謝謝全部

回答

1

不,他們是不一樣的。

第一個說,重定向到主機example.com如果主機是www.example.com
第二個說,如果主機不是www.example.com,則重定向到www.example.com

而且,即使你將在第二改寫爲以下(同時具有規則重定向到example.com

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

因此,如果該主機不是example.com它會重定向到example.com結果可能是相同的如果主機只能是www.example.comexample.com,但如果能有比這更值(例如foobar.example.com)時,您的第一條規則不會重定向,而我重定向。