我有以下ReWrite
规则
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteCond %{REMOTE_ADDR} !{developer_ip}
RewriteRule .* /maintenance.php [R=302,L]
此.htaccess应将所有请求重定向到maintenance.php
,但来自{developer_ip}
的请求是我自己的IP地址。
问题:
以上规则有效,但当我点击任何内部链接时,它再次显示我的maintenance.php(由于IP规则,不得发生),以index.php?{some_query}
或也已由.htaccess本身重写的网址,例如/Page/About-US
(最初为index.php?page_id=200
。
现在我希望.htaccess
将所有请求重定向到maintenace.php(已经在做),但没有来自{developer_ip}
的请求。上述规则没有问题,除了我自己的ip地址之外的部分,它重定向我的内部链接。
答案 0 :(得分:1)
对维护页面执行内部重写,并按此顺序保留规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif)$ [NC]
RewriteCond %{REMOTE_ADDR} !{developer_ip}
RewriteRule !^maintenance\.php$ /maintenance.php [NC,L]
# skip any requests alredy rewritten to maintenance.php
RewriteRule ^maintenance\.php$ - [NC,L]
# rest of your rewrite rules