Is there a possible htaccess directive that can transparently forward request from index.php to index_internal.php if the request is coming from an internal ip range?
A:
Something like this should do it (obviously change the IP address to match your network):
RewriteCond %{REMOTE_ADDR} ^192\.168\.
RewriteRule index.php index_internal.php
If you want an actual header then make it RewriteRule index.php index_internal.php [L,R,QSA]
Greg
2008-11-03 14:05:41
+2
A:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\. [OR]
RewriteCond %{REMOTE_ADDR} ^10\.15\.
RewriteRule ^index\.php$ index_internal.php [R,NC,QSA,L]
What this does:
start mod_rewrite engine (you may have that already)
if (client IP address starts with "192.168.1." [or]
client IP address starts with "10.15.")
and page name is index.php ([n]ot [c]ase sensitive), [r]edirect to index_internal.php, [q]uery [s]tring [a]ppend (i.e. index.php?foo=bar
becomes index_internal.php?foo=bar
), [l]eave processing.
Modify as needed for IP address blocks.
Piskvor
2008-11-03 14:11:36
A:
ok here's my code (no redirect) based on wikipedia's private network list
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^10\. [OR]
RewriteCond %{REMOTE_ADDR} ^172\.[1-3]{1}\d{1}\. [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.
RewriteRule ^index\.php index_internal.php [NC,QSA,L]
ken
2008-11-03 14:21:20
Nice idea! Beware though: not all that's in private range must be necessarily inside your network - for example, I've seen configs where 10.1.255.255 was internal network and 10.4.255.255 was another, less trusted network via VPN. I'd allow only as much access as is necessary.
Piskvor
2008-11-03 14:30:07
i only need to detect if my web application is accessed via public or internally just to set some constants especially redirection host for our single sign on app
ken
2008-11-03 15:20:09