临时重定向到维护页面

时间:2011-10-14 08:18:19

标签: .htaccess mod-rewrite redirect apache2

我正在尝试编写规则以将所有URL重定向到临时页面,以便可以完成某些站点更新,但最终会以无限循环结束。

  RewriteCond %{HTTP_HOST} ^(.*)mysite\.com$
  RewriteCond %{REQUEST_URI} !^(.*)temp$
  RewriteRule ^(.*)$ http://www.mysite.com/temp [R=307,L]

如何检查它是否是临时页面?

3 个答案:

答案 0 :(得分:10)

您需要为维护文件以外的所有请求编写规则。

.htaccess应该是:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

答案 1 :(得分:1)

我所做的是将所有流量重定向到maintenance.html页面,而不是来自我的IP。

第一次重写条件避免了无限循环。

RewriteCond %{REQUEST_URI} !/maintenance.html$ 
RewriteCond %{REMOTE_ADDR} !^172\.16\.254\.1$
RewriteRule $ /maintenance.html [R=302,L] 

答案 2 :(得分:1)

它有效,我试过了。它会将所有请求重定向到维护页面。

    <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
 RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
 RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
 RewriteRule .* /maintenance.html [R=302,L]
</IfModule>