Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mod_rewrite based on ip

I'd like to implement mod_rewrite to put my site into maintenance. Basically all IP addresses except a handful we specify would be forwarded to a static html page.

Please can someone help with this rule. Also is there a way to turn this on and off easily without editing the htaccess file?

like image 741
Josh Avatar asked Jul 02 '09 11:07

Josh


1 Answers

You can use the REMOTE_ADDR variable in a RewriteCond

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

Just change the condition to match the IPs you want, for more than one you can use ^(ip1|ip2|...|ipn)$.

About how to disable the maintenance mode without changing the .htaccess file I think that's not possible short of writing a program that would delete it or otherwise modify it, an easy one would be to rename it.

like image 64
Vinko Vrsalovic Avatar answered Oct 07 '22 18:10

Vinko Vrsalovic