Re: Выделения и вложенные location
Igor Sysoev
igor на sysoev.ru
Пт Фев 18 16:32:35 MSK 2011
On 18.02.2011, at 16:27, Вадим Лазовский wrote:
> Здравствуйте.
>
> есть location заданный регулярным выражением:
>
> location ~ /(\d+)/(\d+)(\..*)$ {
> alias /files/$1/$2$3;
> }
>
> Работает, как надо.
>
> Модифицируем:
>
> location ~ /(\d+)/(\d+)(\..*)$ {
> alias /files/$1/$2$3;
>
> location ~ \.flv$ {
> alias /files/$1/$2$3;
> }
> }
>
> - во вложеном location выделения потеряны. Предположим, что это
> нормальное поведение.
> Но почему ломается родительский location, точнее, alias в нем?
>
> В debug-логе примерно следующее:
>
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script copy: "/
> files/"
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script capture: ""
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script copy: "/"
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script capture: ""
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script copy: "/"
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script capture: ""
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script capture: ""
> ...
> 2011/02/18 16:05:08 [debug] 4053#0: *3754770 http script var: "/
> files//"
>
> Т.е., при наличии вложенных location заданых регулярными выражениями
> выделения родительского location теряются.
Потому что после совпадения с родительским регулярным выражением
делается
проверка вложенного. При этом предыдущие выделения теряются. Нужно
использовать именованные выделения.
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru