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

这会从 URL 中删除 www。

如果没有规则,子域就可以工作(blog.site.com)。使用该规则,它会转换回 (site.com/blog) 并显示 404 错误。

我需要做些什么来防止它影响子域?

另外,我很好奇是否删除了www。是好事吗?我听说只要你选择一个并坚持下去就可以了。我也<link rel="canonical" ... />用来重新执行它。

4

1 回答 1

1

(blog\.)?开始博客。成为可选的,因此只有当它不同于blog.mysite.comand时才会重定向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,反之亦然。

于 2013-09-04T00:29:38.687 回答