ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Вопрос по работе error_page совместно с if и return.
  • From: Maxim Dounin <mdounin@xxxxxxxxxx>
  • Date: Wed, 9 Jan 2013 16:36:46 +0400
  • In-reply-to: <CAFS0-TouXbH6mm9boTzmPb=wWGZAwjxAJL1qMuYtQqoUWg4EiQ@mail.gmail.com>
  • References: <CAFS0-TouXbH6mm9boTzmPb=wWGZAwjxAJL1qMuYtQqoUWg4EiQ@mail.gmail.com>

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@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.