>> location /456/ оказался в корне дерева, и поэтому проверяется первым.
А почему именно этот? Можно поподробнее?

Спасибо.

>Понедельник, 12 февраля 2018, 16:52 +03:00 от Maxim Dounin 
><mdou...@mdounin.ru>:
>
>Hello!
>
>On Mon, Feb 12, 2018 at 04:31:18PM +0300, CoDDoC wrote:
>
>> Доброе время суток!
>> Слегка запутался в порядке обработки локейшенов.
>> Такая структура:
>> 
>> /1/index.html
>> /23/index.html
>> /456/index.html
>> /7890/index.html
>> 
>> Все файлы index.html, естественно, разные.
>> 
>> Соответственно, тестовый конфиг:
>> 
>> server {
>>     ....
>>     location = /1/ { rewrite ^ /1/index.html break; }
>>     location = /23/ { rewrite ^ /23/index.html break; }
>>     location = /456/ { rewrite ^ /456/index.html break; }
>>     location = /7890/ { rewrite ^ /7890/index.html break; }
>
>[...]
>
>> Т.е. работает-то оно правильно, но проверки существующих 
>> локейшенов почему-то всегда начинаюся с "/456/". Не понимаю, чем 
>> он такой особенный? Если отталкиваться от длины, так самый 
>> длинный "/7890/"
>
>Префиксные location'ы не проверяются последовательно, а строится 
>дерево, и поиск максимально совпадающего location'а делается 
>проходом по дереву.  В вашем случае location /456/ оказался в 
>корне дерева, и поэтому проверяется первым.
>
>-- 
>Maxim Dounin
>http://mdounin.ru/
>_______________________________________________
>nginx-ru mailing list
>nginx-ru@nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru


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

Ответить