custom 403 error page quirk
megamic
nginx-forum at nginx.us
Mon Nov 1 10:02:21 MSK 2010
Hi
I have been trying to imlement a custom 403 error page - to be
triggered when the request method is not in HEAD,GET,POST. I started
with something like this (note I was specifically triggering the 403
error for GET requests for testing):
root /htdocs
location = /403.html {
internal;
}
error_page 403 = /403.html;
if ($request_method !~ ^(POST)$ ) {
return 403;
}
location / {
index index.html;
}
For some reason, the above config *always* caused nginx internal 403
error page to be generated - instead of my custom page at
/htdoc/403.html.
After scouring forums and whatnot, I found a suggestion, which is to put
the if() inside the location block - like:
location / {
index index.html;
if ($request_method !~ ^(POST)$ ) {
return 403;
}
}
Doing this and everything seemed to work. I just don't understand why -
can someone explain this?
Cheers
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,146462,146462#msg-146462
More information about the nginx
mailing list