<HTML><BODY>>> location /456/ оказался в корне дерева, и поэтому проверяется первым.<br>А почему именно этот? Можно поподробнее?<br><br>Спасибо.<br><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        Понедельник, 12 февраля 2018, 16:52 +03:00 от Maxim Dounin <mdounin@mdounin.ru>:<br>
        <br>
        <div id="">




        
                
        



        



        



        



        



        



        



        

















        




























        





















































        


































        



        
                
        

















































        



        




































        











































        











































        















        




















































































        






        
        









        
        
        
        
        
                
                
                
                
        








































        
        

        
                
                
                
                
        

        

        
        
        



        






















        
        
        
        
        
        
        
        







































        





        
        
        
        
        
        
        
        





        



        



































        
































<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
            <div id="style_15184435220000001017_BODY">Hello!<br>
<br>
On Mon, Feb 12, 2018 at 04:31:18PM +0300, CoDDoC wrote:<br>
<br>
> Доброе время суток!<br>
> Слегка запутался в порядке обработки локейшенов.<br>
> Такая структура:<br>
> <br>
> /1/index.html<br>
> /23/index.html<br>
> /456/index.html<br>
> /7890/index.html<br>
> <br>
> Все файлы index.html, естественно, разные.<br>
> <br>
> Соответственно, тестовый конфиг:<br>
> <br>
> server {<br>
>     ....<br>
>     location = /1/ { rewrite ^ /1/index.html break; }<br>
>     location = /23/ { rewrite ^ /23/index.html break; }<br>
>     location = /456/ { rewrite ^ /456/index.html break; }<br>
>     location = /7890/ { rewrite ^ /7890/index.html break; }<br>
<br>
[...]<br>
<br>
> Т.е. работает-то оно правильно, но проверки существующих <br>
> локейшенов почему-то всегда начинаюся с "/456/". Не понимаю, чем <br>
> он такой особенный? Если отталкиваться от длины, так самый <br>
> длинный "/7890/"<br>
<br>
Префиксные location'ы не проверяются последовательно, а строится <br>
дерево, и поиск максимально совпадающего location'а делается <br>
проходом по дереву.  В вашем случае location /456/ оказался в <br>
корне дерева, и поэтому проверяется первым.<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br data-mce-bogus="1"></div>
            
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br>
<br>--<br></BODY></HTML>