[英]Redirect non-www to www not working
我使用virtualmin设置了一个虚拟服务器,它没有创建.htaccess文件,因此我在public_html文件夹中创建了一个服务器,并输入以下代码
RewriteEngine On
RewriteCond % ^megahotserved.com [NC]
RewriteRule ^(.*)$ http://www.megahotserved.com/$1 [L,R=301]
重新启动Apache并且没有任何效果,然后尝试
<VirtualHost *:80>
ServerName megahotserved.com
Redirect permanent / http://www.megahotserved.com/
</VirtualHost>
在httpd.conf文件中,当我重新启动apache firefox时出现错误
页面未正确重定向。
Firefox已检测到服务器正在以永远无法完成的方式重定向对该地址的请求。
我该怎么办 ?
您的代码是正确的,您只需要遵循我引用自http://httpd.apache.org/docs/current/mod/mod_rewrite.html的下一段
默认情况下,虚拟主机不会继承主服务器上下文中的mod_rewrite配置设置。 要使主服务器设置适用于虚拟主机,必须在每个部分中放置以下指令:
RewriteEngine On RewriteOptions Inherit
似乎您没有与www.
正确匹配的VirtualHost www.
地址,因此对http://www.megahotserved.com/
请求正在http://www.megahotserved.com/
同一虚拟主机,并进入循环重定向。 因此,重定向工作正常; 您只需修复服务器配置的其他部分。
同意以上内容,并做一点补充:最好将非www重定向到www而不是重写,否则,您将拥有整个网站的两个完整视图(“副本”); 每个页面都有两个URL,而不是一个规范的URL。 这可能对搜索引擎等不利。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.