Problem with error_handler (redirect loop?)

bkirkbri nginx-forum at nginx.us
Tue Jul 6 00:39:26 MSD 2010


[quote="Maxim Dounin"]
You are using nonexitant enumerated captures here as they are
gone as soon as you execute another regexp while server rewrite
directives (including "set") are re-executed after internal
redirects.

General rule is: never use enumerated captures from server_name
regexp as long as you have other regexps in server block in
question. Or, better: never use enumerated captures from
server_name.

This particular problem with malloc(-2) should be fixed 0.8.*.
Also in 0.8.* you may use named captures in server_name instead of
enumerated, they will survive internal redirects.

For 0.7.* just avoid using captures in server_name. If you really
have to set something based on Host header - use

if ($http_host ~ "^(.)(.)(.).*$") {
set $host_1 $1;
set $host_2 $2;
set $host_3 $3;
}

at server level instead.
[/quote]

Perfect, that fixed it.  Many thanks for the quick response!

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,105623,105637#msg-105637




More information about the nginx mailing list