使用.htaccess重定向时重复发送的URL

时间:2013-03-04 16:55:47

标签: .htaccess redirect http-status-code-302

我正在尝试将规则添加到我的.htaccess文件中,这样如果我要更改我的网站,它会在用户尝试访问我的网站时将用户重定向到“正在建设中”页面。

我正在使用:

# SITE UNDER CONSTRUCTION REDIRECT
Redirect 302 / http://redsquirrelsoftware.co.uk/construction.html

但是这会将我发送到http://redsquirrelsoftware.co.uk/construction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.htmlconstruction.html,我显然会收到404错误。

如何停止网址的递归尾部?

2 个答案:

答案 0 :(得分:1)

Redirect是一个mod_alias指令,不能与mod_rewrite指令混合使用,所以为了防止循环,你应该只使用这样的mod_rewrite指令:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !construction\.html   [NC]
RewriteCond %{REQUEST_URI} !folder_to_exclude    [NC]
RewriteRule .*           /construction.html      [R=301,L]

此答案假设/construction.html页面位于同一个域中。如果不是,请替换:

RewriteRule .*             /construction.html         [R=301,L]

RewriteRule .*   http://new_domain/construction.html  [R=301,L]

答案 1 :(得分:0)

尝试使用前提条件:

RewriteCond %{REQUEST_URI} !^/construction.html
Redirect 302 / http://redsquirrelsoftware.co.uk/construction.html