【发布时间】:2017-02-12 12:47:11
【问题描述】:
我想将www.example.com 重定向到example.com。以下 htaccess 代码实现了这一点:
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
但是,有没有办法以通用方式执行此操作而无需对域名进行硬编码?
【问题讨论】:
-
请务必注意,如果您不使用 www(或其他子域),那么所有 cookie 都将提交到每个子域,并且您将无法拥有无 cookie用于提供静态内容的子域,从而减少了浏览器和服务器之间来回发送的数据量。你以后可能会后悔的事情:twitter.com/codinghorror/statuses/1637428313
-
另一件需要考虑的事情,确保您在页面中设置的规范名称没有 www,以避免可能的重复内容惩罚。此外,如果您的链接中有绝对网址,请确保它们也都是非 www。
-
我认为最好保留显式重定向,尤其是在复制另一个域的配置时,这可能需要不同的调整(在某些情况下 www 域更好)weboptimizer.ch/2014/01/redirection-www
-
为什么这个解决方案适用于除根 url 之外的所有情况?例如domain.com 不会指向domain.com,而domain.com/page1 会重定向到domain.com/page1。
-
如果您希望在维护协议(HTTP 或 HTTPS)的同时将 www 重定向到非 www,请查看此相关问题:Redirecting www to non-www while maintaining the protocol HTTP or HTTPS
标签: .htaccess redirect mod-rewrite url-rewriting http-status-code-301