Re: Вопрос по работе error_page совместно с if и return.

Oleg Malaphey oleg.malaphey at gmail.com
Wed Jan 9 13:09:42 UTC 2013


Максим, спасибо за разъяснение!

9 января 2013 г., 15:36 пользователь Maxim Dounin <mdounin at mdounin.ru>написал:

> Hello!
>
> On Wed, Jan 09, 2013 at 02:26:36PM +0300, Oleg Malaphey wrote:
>
> > Добрый день!
> >
> > Подскажите пожалуйста, должна ли работать кастомная страница error_page
> для
> > return 40x в блоке if? Если нет, то почему?
> >
> > Например следующая конфигурация будет отдавать стандартную страницу
> ошибки
> > nginx 403 :
> >
> >         error_page 403 /m/403.html;
> >
> >         if ( $request_uri ~* /.svn/) {
> >                 return 403;
> >         }
>
> После первого возврата 403 - nginx, в соответствии с error_page,
> выполняет внутреннее перенаправление на /m/403.html.  Однако при
> обработке запроса к /m/403.html снова случается 403 (потому что
> опять срабатывает тот же if, ибо $request_uri - это uri исходного
> запроса), и возвращается стандартная ошибка (ибо одна попытка
> перейти по error_page уже была).
>
> Так что - всё работает, как и должно.  Просто происходит то, что
> написано, а не то, что имелось в виду.
>
> > А вот конфигурация с использованием location уже отдаст кастомную
> страницу
> > ошибки (/m/403.html):
> >
> >         error_page 403 /m/403.html;
> >
> >         location ~* /.svn/ {
> >                 return 403;
> >         }
>
> Так и имеет смысл делать.  Это заодно решит проблему в проверке
> выше - она тривиально обходится с помощью %XX.
>
>
> --
> Maxim Dounin
> http://nginx.com/support.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru




-- 
Best Wishes,
Oleg Malaphey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130109/424d233e/attachment.html>


Подробная информация о списке рассылки nginx-ru