nested error_page

Igor Sysoev igor at sysoev.ru
Tue Dec 14 10:12:38 MSK 2010


On Tue, Dec 14, 2010 at 03:07:08PM +0800, Mauro Stettler wrote:

> hi
> 
> i have a situtation where i would need something similar to this:
> 
> location / {
>   error_page 404 = /fallback_all;
>   // do a request to get content from memcache, if not found go to /fallback_all
> }
> 
> location = /fallback_all {
>   internal;
>   error_page 404 = @404;
>   // do a request to get content from fastcgi, if not found go to @404

    recursive_error_pages on;

> }
> 
> location @404 {
>   internal;
>   // real 404 page
> }
> 
> but this doesn't work. if the fastcgi returns a 404 then nginx will
> just display its own error page and ignore the second error_page
> directive. i'm guessing that the reason is that at the first 404 error
> it already sets the ngx_http_request_t->err_status to something which
> makes it ignore the second 404.
> 
> is there any way around this? i could probably make the fastcgi return
> some other code, but i'm also not sure if this will make it work then.
> is there any directive which could make the second error_page work?
> something to allow nested error_pages


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list