Problem with "if" and "$remote_addr"

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 :frowning:

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: