我正在尝试将我的网站设置为仅使用www,非www应永久重定向到www。 This answer建议使用两个虚拟主机,但这会导致我进入重定向循环。
以下是该网站的配置:
<VirtualHost *:80>
ServerName www.mydomain.com
DirectoryIndex index.html index.php
DocumentRoot /home/me/sites/mydomain.com/htdocs
# Log file locations
LogLevel warn
ErrorLog /home/me/sites/mydomain.com/logs/error.log
CustomLog /home/me/sites/mydomain.com/logs/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName mydomain.com
Redirect permanent / http://www.mydomain.com/
</VirtualHost>
当我访问该网站的非www版本时,它成功重定向到www版本,但Chrome随后告诉我有一个重定向循环。
起初我认为在我的文档根目录中可能是.htaccess
但是在删除该文件之后它仍然会发生。它只是一个简单的Wordpress网站。
任何人都可以看到导致这种情况发生的配置有问题吗?如果没有,我怎样才能缩小原因?
答案 0 :(得分:1)
对于非www,您不需要单独的VirtualHost
条目,而是使用ServerAlias。另外要重定向到www只需使用这样的规则:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DirectoryIndex index.html index.php
DocumentRoot /home/me/sites/mydomain.com/htdocs
# Log file locations
LogLevel warn
ErrorLog /home/me/sites/mydomain.com/logs/error.log
CustomLog /home/me/sites/mydomain.com/logs/access.log combined
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>