删除www但不影响子域名(htaccess)

时间:2013-09-04 00:19:05

标签: .htaccess mod-rewrite subdomain canonical-link

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" ... />来强制执行它。

1 个答案:

答案 0 :(得分:1)

在开始博客中使用(blog\.)?。变为可选,因此只有在与blog.mysite.commysite.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.comblog.mysite.com重定向。

为了避免双重性,最好在www或非www之间进行选择,并为此重新定位。

所以如果你使用www然后将非www重定向到www,反之亦然。

相关问题