Re: Замена if на try_files
Maxim Dounin
mdounin на mdounin.ru
Ср Дек 14 14:11:33 UTC 2011
Hello!
On Wed, Dec 14, 2011 at 03:37:03PM +0200, Sergey Kobzar wrote:
> On 12/14/11 01:52, Maxim Dounin wrote:
> >Hello!
> >
> >On Tue, Dec 13, 2011 at 08:23:57PM +0200, Sergey Kobzar wrote:
> >
> >[...]
> >
> >> location ^~ /$subfolder/errors/ {
> >> ...
> >> }
> >
> >Unrelated note: так работать не будет. В регулярных выражениях
> >переменные не поддерживаются, т.к. регулярные выражения
> >компилируются на стадии чтения конфигурации.
>
> Максим, спасибо. Видимо я неверно прочитал документацию.
>
> Т.е. если выражение попадает хотя бы под один локейшн с обычной
> строкой в шаблоне, то после такого локейшна location ^~
> обрабатываться не будет?
Нет. Моё замечание относилось именно к использованию *переменных*
в регулярном выражении.
> Можно немного поподробней?
Порядок выбора location подробно расписан тут:
http://nginx.org/ru/docs/http/ngx_http_core_module.html#location
: Для определения соответствия location'а и запроса сначала
: проверяются location'ы, заданные обычными строками. Среди них
: ищется максимальное совпадение. Затем проверяются регулярные
: выражения. В отличие от обычных строк, они не сортируются, а
: проверяются в порядке их следования в конфигурационном файле.
: Проверка регулярных выражений прекращается после первого же
: совпадения. Если совпадение с регулярным выражением не найдено, то
: используется конфигурация максимально совпавшего location'а.
Регулярные выражения не проверяются, если это явно запрещено с
помощью модификатора "^~", либо найдено точное совпадение с
location'ом, заданным с модификатором "=".
Maxim Dounin
Подробная информация о списке рассылки nginx-ru