RewriteCond %{HTTP_HOST} !^mysite.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [L,R=301]
这会从网址中删除www。
没有规则子域工作(blog.site.com)。根据规则,它会转换回(site.com/blog)并显示404错误。
我需要做些什么来防止它影响子域名?
此外,我很好奇如果删除www。是好事吗?我听说只要你选一个并坚持下去就无所谓了。我也在使用<link rel="canonical" ... />
来强制执行它。
答案 0 :(得分:1)
在开始博客中使用(blog\.)?
。变为可选,因此只有在与blog.mysite.com
和mysite.com
不同时才会重定向。
RewriteCond %{HTTP_HOST} !^(blog\.)?mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [L,R=301]
另一种方法是:
RewriteCond %{HTTP_HOST} !^mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} !^blog\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [L,R=301]
这意味着如果主机名不同,则mysite.com
和blog.mysite.com
重定向。
为了避免双重性,最好在www或非www之间进行选择,并为此重新定位。
所以如果你使用www然后将非www重定向到www,反之亦然。