我正在尝试编写规则以将所有URL重定向到临时页面,以便可以完成某些站点更新,但最终会以无限循环结束。
RewriteCond %{HTTP_HOST} ^(.*)mysite\.com$
RewriteCond %{REQUEST_URI} !^(.*)temp$
RewriteRule ^(.*)$ http://www.mysite.com/temp [R=307,L]
如何检查它是否是临时页面?
答案 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>