Caiapfas
asked on
MOD_REWRITE : I want to block access to all my files except from certian ip's/domains...
I want to use MOD_REWRITE to block access to my files on my server(even broswer access, if possible) EXCEPT from domains/ips I specify
much thanks..
Caiapfas
much thanks..
Caiapfas
I forgot to mention the final rule sends the users to a 404.html or 403.html document (missing, moved), so make sure you have one.
-Ram
-Ram
ASKER
thats not what I wanted and my attempts have fails I want all blocked and sent to a certian page EXCEPT the ips/doamins i list within the rule....but thanks
Sure, you can allow certain IP, read this:
http://www.crucialparadigm.com/resources/tutorials/server-administration/guide-to-htaccess-htpassword-password-protect-directory-tutorial-tips.php
http://www.crucialparadigm.com/resources/tutorials/server-administration/guide-to-htaccess-htpassword-password-protect-directory-tutorial-tips.php
Read the "Deny/Allow Certian IP Addresses" section.
ASKER
no I want to use mod_rewrite to direct them diffrect file/page.....not just deny them
O ok:
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
RewriteRule ^/$ /homepage.1.html [L]
rewriteCond %{REMOTE_ADDR} ^55\.66\.*$
RewriteRule ^/$ /homepage.2.html [L]
RewriteRule ^/$ /homepage.all.html [L]
i.e. Sent all IP 55.55.* to /homepage.1.html, all IP 55.66.* to /homepage.1.html, and all others to /homepage.all.html.
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
RewriteRule ^/$ /homepage.1.html [L]
rewriteCond %{REMOTE_ADDR} ^55\.66\.*$
RewriteRule ^/$ /homepage.2.html [L]
RewriteRule ^/$ /homepage.all.html [L]
i.e. Sent all IP 55.55.* to /homepage.1.html, all IP 55.66.* to /homepage.1.html, and all others to /homepage.all.html.
some errors, I mean:
i.e. Sent all IP 55.55.* to /homepage.1.html, all IP 55.66.* to /homepage.2.html, and all others to /homepage.all.html.
i.e. Sent all IP 55.55.* to /homepage.1.html, all IP 55.66.* to /homepage.2.html, and all others to /homepage.all.html.
For a list go:
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
rewriteCond %{REMOTE_ADDR} ^55\.56\.*$
rewriteCond %{REMOTE_ADDR} ^55\.57\.*$
RewriteRule ^/$ /homepage.1.html [L]
rewriteCond %{REMOTE_ADDR} ^55\.66\.*$
rewriteCond %{REMOTE_ADDR} ^55\.67\.*$
rewriteCond %{REMOTE_ADDR} ^55\.68\.*$
RewriteRule ^/$ /homepage.2.html [L]
RewriteRule ^/$ /homepage.all.html [L]
i.e. Sent all IP 55.55.* to /homepage.1.html, sent all IP 55.56.* to /homepage.1.html, sent all IP 55.57.* to /homepage.1.html
and
sent all IP 55.66.* to /homepage.2.html, sent all IP 55.67.* to /homepage.2.html, sent all IP 55.68.* to /homepage.2.html
finally, all others to /homepage.all.html.
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
rewriteCond %{REMOTE_ADDR} ^55\.56\.*$
rewriteCond %{REMOTE_ADDR} ^55\.57\.*$
RewriteRule ^/$ /homepage.1.html [L]
rewriteCond %{REMOTE_ADDR} ^55\.66\.*$
rewriteCond %{REMOTE_ADDR} ^55\.67\.*$
rewriteCond %{REMOTE_ADDR} ^55\.68\.*$
RewriteRule ^/$ /homepage.2.html [L]
RewriteRule ^/$ /homepage.all.html [L]
i.e. Sent all IP 55.55.* to /homepage.1.html, sent all IP 55.56.* to /homepage.1.html, sent all IP 55.57.* to /homepage.1.html
and
sent all IP 55.66.* to /homepage.2.html, sent all IP 55.67.* to /homepage.2.html, sent all IP 55.68.* to /homepage.2.html
finally, all others to /homepage.all.html.
REad the mod_rewrite Apache Doc at:
http://httpd.apache.org/docs/mod/mod_rewrite.html
You'll learn alot more fancy tricks.
http://httpd.apache.org/docs/mod/mod_rewrite.html
You'll learn alot more fancy tricks.
ASKER
no, you are doing some GREAT script writing but we must be misunderstanding...
I want to send all traffic to page.htm
and only the few ip I list are all access to the files/site...get it?
I want to send all traffic to page.htm
and only the few ip I list are all access to the files/site...get it?
why not just use a .htaccess file and set your 403 page as this "page.htm"
ASKER
BECAUSE i have site accessing files on this server that i want to allow to do so, but any and all other = where i send them,
ASKER
including users
you can use htaccess to block IPs, or only allow a list of IPs/hosts
eg:
order deny,allow
deny from all
allow from localhost
allow from 192.168.0.4
that would only allow the local machine and 192.168.0.4 to access the directory/subdirs/files
eg:
order deny,allow
deny from all
allow from localhost
allow from 192.168.0.4
that would only allow the local machine and 192.168.0.4 to access the directory/subdirs/files
ASKER
can i allow domains or will i need the ip for all?
sure
allow from .mydomain.com
allows all subdomains (eg pies.mydomain.com, candy.mydomain.com, etc)
allow from pie.mydomain.com
allows only from pie.mydomain.com
allow from .mydomain.com
allows all subdomains (eg pies.mydomain.com, candy.mydomain.com, etc)
allow from pie.mydomain.com
allows only from pie.mydomain.com
here's quite a good guide to mastering your htaccess
http://www.javascriptkit.com/howto/htaccess.shtml
http://www.javascriptkit.com/howto/htaccess.shtml
How bout this:
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
RewriteRule ^/(*)$ /\1 [L]
rewriteCond %{REMOTE_ADDR} ^*$
RewriteRule ^(*)$ /page.html [L]
Will allow only 55.55.* to access any, while all other request wll be routed page.html.
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
RewriteRule ^/(*)$ /\1 [L]
rewriteCond %{REMOTE_ADDR} ^*$
RewriteRule ^(*)$ /page.html [L]
Will allow only 55.55.* to access any, while all other request wll be routed page.html.
ASKER
ok so how can i do more than one ip ...
please I want to be able to allow domians
I even want to disallow the server the files are housed on
please I want to be able to allow domians
I even want to disallow the server the files are housed on
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
what if i wanted to put full ips in there?
its fine.
i.e. rewriteCond %{REMOTE_ADDR} ^55\.54\.55\.55$
rewriteEngine on
rewriteCond %{HTTP_user_agent} Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Toshiba Corporation)
rewriteCond %{REMOTE_ADDR} ^55\.55\.*$
rewriterule!(403\.html¦404
This will block any one using Mozilla with the IP of 55.55.*
The Apache Doc at:
http://httpd.apache.org/docs/mod/mod_rewrite.html
is very useful. Also knowing Regular Expression will help.