繁体   English   中英

将非www重定向到www不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM