2009-07-02 35 views
12

我想实现mod_rewrite把我的网站进行维护。基本上除了我们指定的一小部分IP地址外,其他所有IP地址都会被转发到一个静态的html页面。mod_rewrite基于IP

请有人可以帮助这个规则。还有一种方法可以很容易地打开和关闭,而无需编辑htaccess文件?

回答

15

可以使用REMOTE_ADDR变量中的RewriteCond

RewriteCond %{REMOTE_ADDR} !^10\.0\.1\.1$ 
RewriteRule^/maintenance.html 

只要改变条件来匹配你想要的,一个以上的可以使用^的IPS(IP1 | IP2 | ... | IPN) $。

关于如何在不改变.htaccess文件的情况下禁用维护模式我认为这不可能写一个程序来删除它或者修改它,一个简单的方法就是重命名它。

+0

不要忘记在常规标记开始和结束表达。 – Gumbo 2009-07-02 11:42:01

0

您可以启用此状态并通过某些可以写入.htaccess的管理界面(例如,设置为755或777的权限)将其禁用。它总是会找到.htaccess,在开始处插入这两行,并且在禁用维护时会删除这两行,使文件的其余部分保持不变