我有一个网站似乎没有从非 www 重定向到 www。
我的 Apache 配置如下:
RewriteEngine On ### re-direct to www RewriteCond %{http_host} !^www.example.com [nc] RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc]
我错过了什么?
使用重写引擎是解决这个问题的一种非常重量级的方法。这是一个更简单的解决方案:
<VirtualHost *:80> ServerName example.com Redirect permanent / http://www.example.com/ </VirtualHost> <VirtualHost *:80> ServerName www.example.com # real server configuration </VirtualHost>
然后您将有另一个<VirtualHost>部分ServerName www.example.com用于您的真实服务器配置。/Apache在使用Redirect指令之后自动保留任何内容,这是一个常见的误解,即为什么这种方法不起作用(实际上它起作用)。
<VirtualHost>
ServerName www.example.com
/
Redirect