我有一个网站,似乎不会从非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]
我遗漏了什么?
发布于 2009-07-08 20:26:32
使用重写引擎是解决此问题的一种非常重要的方法。这里有一个更简单的解决方案:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / http://www.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
# real server configuration
</VirtualHost>
然后,您将拥有另一个包含ServerName www.example.com
的部分,用于您的实际服务器配置。在使用Redirect
directive时,Apache会自动保留/
之后的任何内容,这是对此方法不起作用的常见误解(实际上它确实起作用了)。
发布于 2012-07-24 19:24:46
http://example.com/subdir/?lold=13666
=> http://www.example.com/subdir/?lold=13666
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
发布于 2009-07-08 20:32:05
<VirtualHost *:80>
ServerAlias example.com
RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>
https://stackoverflow.com/questions/1100343
复制相似问题