ПРОЕКТЫ 


  АРХИВ 


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: пожелания по документации rewrite



On Fri, Nov 23, 2012 at 02:44:53PM +0400, Maxim Dounin wrote:
> Hello!
> 
> On Fri, Nov 23, 2012 at 01:58:18PM +0400, Anton Yuzhaninov wrote:
> 
> > Тз текущего описания rewrite не очевидно, что после обычного rewrite
> > будет использовкаться конфигурация из нового location, а при rewrite
> > ... break остается конфигурация текущего location.
> > 
> > Например с таким конфигом:
> > 
> > location = /test1.txt {
> >     add_header X-Location test1;
> >     deny all;
> > }
> > 
> > location = /test2.txt {
> >     add_header X-Location test2;
> >     rewrite ^ /test1.txt break;
> > }
> > 
> > location = /test3.txt {
> >     add_header X-Location test3;
> >     rewrite ^ /test2.txt;
> > }
> > 
> > При запросе на /test3.txt будет отдан файл test1.txt, с заголовком test2.
> > 
> > Було бы неплохо упомянуть в документации такую особенность rewrite break.
> 
> Всмысле - прописать явно, что break "завершает обработку ..." без 
> поиска нового location'а?  Так-то там даже пример про это есть.  
> Но вообще да, наверное имеет смысл.

Так плохо, т.к. rewrite ... break или break (ещё одно место),
указанные на уровне server, не отключат поиск нового location'а.
Моё предложение такое.

Было:

Директивы модуля ngx_http_rewrite_module обрабатываются в следующем порядке:

- выполняются директивы этого модуля, описанные на уровне сервера;

- ищется location для запроса;

- выполняются директивы этого модуля, описанные в выбранном location, и если
  они изменяли URI, то ищется новый location для уже нового URI. Этот цикл
  может повторяться до 10 раз, после чего возвращается ошибка 500 (Internal
  Server Error).

Стало:

[...]

- выполняются директивы этого модуля, описанные в выбранном location, и если
  они изменяли URI и не было break, то ищется новый location для уже нового URI.
  Этот цикл может повторяться до 10 раз, после чего возвращается ошибка 500
  (Internal Server Error).

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.