Problem with "if" and "$remote_addr"
bar_gra
nginx-forum at nginx.us
Tue Nov 27 02:30:51 UTC 2012
Hello,
I have strange problem. If i enter phpinfo file i get:
_SERVER["REMOTE_ADDR"] 80.239.242.1
_SERVER["HTTP_X_FORWARDED_FOR"] 79.173.35.1
So my IP is 80.239.242.1
I want to block access to location from other ips then ip in url. For
example
location ~ ^/([0-9\.]+)/(.*?)$ {
if ($remote_addr != $1) {
return 404;
}
}
But it doesn't work correctly :(
1.) I will see value of variable $remote_addr, and it is correct result. The
result is: 80.239.242.1
location ~ ^/([0-9\.]+)/(.*?)$ {
echo $remote_addr;
}
2.) I will check that $remote_addr is excaly parametr 1, and i get for the
url "/80.239.242.1/1"
location ~ ^/([0-9\.]+)/(.*?)$ {
if ($remote_addr != $1) {
echo "$remote_addr != $1";
}
}
And the result is "79.173.35.1 != 80.239.242.1"
The question: Why variable $remote_addr change value when i use "if"
Sorry for my english.
Thanks for reply
Bart
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,233248,233248#msg-233248
More information about the nginx
mailing list