custom 403 error page quirk
Maxim Dounin
mdounin at mdounin.ru
Mon Nov 1 11:33:31 MSK 2010
Hello!
On Mon, Nov 01, 2010 at 03:02:21AM -0400, megamic wrote:
> 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?
http://nginx.org/pipermail/nginx/2010-October/023353.html
Maxim Dounin
More information about the nginx
mailing list