rewrite
Igor Sysoev
is at rambler-co.ru
Thu Feb 10 10:42:43 MSK 2005
On Thu, 10 Feb 2005, Andrey N. Oktyabrski wrote:
> Kpoxa KpoIIIkin wrote:
>>> Но сейчас last используется для прекращения обрабоки текущего набора
>>> правил, а не всего цикла. Поэтому нужно решить, как назвать модификаторы
>>> для прекращения текущего набора и для прекращения всего цикла.
>>>
>>> Варианты:
>>> last, exit, quit, continue, again, last_cycle, что-то ещё.
>>>
>> Предлагаю для конца текущего набора last, а для конца вообще - break;
> А можно и более явно - stop_rewrite
Я сделал в 0.1.18 break. Тут смысл не только в том, чтобы остановить
rewrite, но и в том, чтобы после этого не определялся новый location.
Я изменил пример на сайте - было:
# rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
rewrite ^/(download/.*)/mp3/(.*)\..*$
/$1/mp3/$2.mp3 last;
location /download/ {
а стало:
location /download/ {
# rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
rewrite ^/(download/.*)/mp3/(.*)\..*$
/$1/mp3/$2.mp3 break;
Если во втором варианте вместо break поставить last, то nginx сделает
десять циклов и скажет 500. А break оставляет конфигурацию текщего
location, то есть, /download/.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list