Apache重定向导致无限循环

时间:2016-05-04 12:16:41

标签: apache .htaccess redirect

我知道这将是一个非常基本的东西,但我已经浪费了足够的时间来摆弄它。

现在有一个旧的垃圾网站,所以当它正在进行开发时,我希望它上面的所有页面都重定向到我制作的under_construction.htm页面。

我已经在我的.htaccess文件和我的httpd.conf中尝试了以下2条规则的各种版本(我知道这两个规则正在听取'因为我有其他规则,如ServerAlias / caching等。设置,他们工作正常)。

<Directory "home/xxxx/test">
        AllowOverride All
        Options None
        Order allow,deny
        Allow from all
</Directory>

<VirtualHost *:80>
        DocumentRoot /home/xxxx/test
        ServerName www.test.com
        ServerAlias test.com
        Redirect 301 / http://www.test.com/under_construction.htm
</VirtualHost>

和: -

RewriteEngine On
RewriteCond %{REQUEST_URI} !=/under_construction.htm
RewriteRule ^ /under_construction.htm [R=301]

这两个都导致我在主页上获得一个apache测试页面,在所有其他页面(包括构建页面)上获得404,或者由于重定向过多而导致浏览器错误。

请有人纠正我的愚蠢!

提前致谢

1 个答案:

答案 0 :(得分:0)

将以下代码放在主目录.htaccess文件中:

RewriteEngine on
RewriteRule  (.*)$  path/to/under_construction.htm

确保编写路径而不从主目录开始/和路径启动,例如,如果您位于www目录和under_construction.htm中 路径就像这个www / folder / folder / folder / under_construction.htm 所以在写入时.Htaccess写这样的路径

RewriteRule  (.*)$  folder/folder/folder/under_construction.htm

没有/在路径之前,它会毫无问题地工作,并将所有内容重定向到under_construction.htm,除非你有一些子委员会.htaccess规则覆盖它。