Welcome! Log In Create A New Profile

Advanced

Re: custom 403 error page quirk

November 01, 2010 05:33AM
Maxim Dounin Wrote:
-------------------------------------------------------
> 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/0233
> 53.html

Thanks for this link, it does seem to explain things if I understood it correctly. So basically what was going on in this:

1) The return 403 in the server{} body caused 403 to be return on every internal redirect where method != POST
2) The first one was the actual request, which returned 403 as the method was not POST
3) We then tried to access location /403.html, however this was also checked against the 403 rule, and as the method was != POST, we return another 403
4) As you said in the last response..."wow, we've already done error_page redirection and
this resulted in another error, return default error page"

So...I guess my next question would be how to elegantly apply a rule like this against all locations (or a number of selected locations), without having to copy it into the location{} body for each one?

Cheers

>
> Maxim Dounin
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

custom 403 error page quirk

megamic November 01, 2010 03:02AM

Re: custom 403 error page quirk

Maxim Dounin November 01, 2010 04:36AM

Re: custom 403 error page quirk

megamic November 01, 2010 05:33AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 95
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready