以下有何不同?忽略域名。
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而另一个没有。
全部谢谢
答案 0 :(得分: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.com
和example.com
,结果可能会相同。但是,如果它可以包含更多值(例如foobar.example.com
),那么当我的 重定向时,您的第一个规则将不会重定向。