我使用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检测到服务器正在以永远无法完成的方式重定向此地址的请求。
我该怎么办?
答案 0 :(得分:1)
您的代码是正确的,您只需要按照我引用http://httpd.apache.org/docs/current/mod/mod_rewrite.html
的下一段说明默认情况下,虚拟主机不会继承主服务器上下文中的mod_rewrite配置设置。要使主服务器设置适用于虚拟主机,必须在每个部分中放置以下指令:
RewriteEngine On RewriteOptions Inherit
答案 1 :(得分:0)
好像你没有正确匹配www.
地址的VirtualHost,因此对http://www.megahotserved.com/
的请求正在点击同一个虚拟主机并进入循环重定向。所以重定向工作正常;你只需要修复服务器配置的不同部分。
答案 2 :(得分:0)
同意上述内容,并添加一小部分内容:最好将非www重定向到www而不是重写,否则您将拥有整个网站的两个完整视图(“副本”);每个页面都有两个URL,而不是一个规范的URL。这对搜索引擎和其他事情都不利。