Hi all, I’ve got strange behavior that I don’t understand in two
different
configs. I’ll post examples below, in both of them I use add_header two
times and one of them is not working while second does.
Example 1:
Request is: http://hostname/?region=XX
#This location adds header, so it’s frankly the only reason I use it in
my
config. If I set location to “~ .*”, I’ll get header set also.
location = / {
if ($arg_region) {
add_header Set-Cookie “geoip_country=$arg_region;Path=/”;
}
proxy_pass http://backend;
}
#If I remove the exact match above, I’ll not get header set. Even if
it’s
the only location in whole config and all site is working from there for
sure.
location / {
if ($arg_region) { add_header Set-Cookie
“geoip_country=$arg_region; path=/” ;}
proxy_pass http://backend;
}
Example 2:
Request is the same and this chain of locations is recommended by drupal
community.
location / {
#Does not work
if ($arg_region) { add_header Set-Cookie
“geoip_country=$arg_region;Path=/”; }
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^ /index.php;
}
location ~ \.php$ {
#This works
if ($arg_region) { add_header Set-Cookie
“geoip_country=$arg_region;Path=/”; }
…
fastcgi_intercept_errors on;
fastcgi_pass fpm-backend;
}
Posted at Nginx Forum: