On Wed, Oct 31, 2007 at 01:04:52AM +1030, Kingsley Foreman wrote:
I have an unusual requirement for a poject im working on.
What I need to do is somehow make it so that an ip address is able to hit a
folder but anyone not on that address will get a 404 or 403 message.
Im not much of a perl programmer however what i need it to do is this
_______________________________________________________________________________________
$ip = $r->remote_addr ;
$request = "/htdocs/111222333444-123456789/blah/"; # this would be the
$r->uri i think
$ip =~ s/\.//g;
$request =~ /\/htdocs\/([0-9]+)-([0-9]+)\/blah\//; # matches the
111222333444 and 123456789 in the request
if ($ip == $1){
print "allow"; # allow it to open the file/folder
} else {
print "404"; # send a 404 or 403 message to the client
}
_______________________________________________________________________________________
I hope this example sort of shows what I need to happen, however I have no
idea how to use the perl-embed module to make it work.
The usual way is veriable handler:
http {
perl_set $forbidden forbidden::handler;
server {
location / {
if ($forbidden) {
return 403;
}
root ...
...
}
forbidden.pm:
package forbidden;
use nginx;
sub handler {
my $ip = r->remote_addr;
my $uri = r->uri;
...
if ($ip == $1) {
return "1";
}
return "";
}