<HTML><BODY><div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
            <div id="style_15184322720000000563_BODY"><div class="class_1518441798">
Доброе время суток!<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>    location ~ (\.html$|\.php$) { internal; }<br><br>    location "" { return 404; }<br><br>    error_page 404 = @err404;<br><br>    # все, что не соответствует<br>    location @err404 {<br>        keepalive_timeout 0;<br>        rewrite ^ /err/404.html break;<br>    }<br>}<br><br>Из дебага:<br><br>2018/02/12 16:02:05 [debug] 11200#11200: *1 http request line: "GET /1/ HTTP/1.1"<br>2018/02/12 16:02:05 [debug] 11200#11200: *1 http uri: "/1/"<br><br>2018/02/12 16:02:05 [debug] 11200#11200: *1 test location: ""<br><<< === здесь ожидалось test location: "/7890/", как локейшен максимальной длины<br>2018/02/12 16:02:05 [debug] 11200#11200: *1 test location: "/456/"<br>2018/02/12 16:02:05 [debug] 11200#11200: *1 test location: "/23/"<br>2018/02/12 16:02:05 [debug] 11200#11200: *1 test location: "/1/"<br>2018/02/12 16:02:05 [debug] 11200#11200: *1 using configuration "=/1/"<br><br>=====================================================<br><br>2018/02/12 16:03:05 [debug] 11246#11246: *1 http request line: "GET /23/ HTTP/1.1"<br>2018/02/12 16:03:05 [debug] 11246#11246: *1 http uri: "/23/"<br><br>2018/02/12 16:03:05 [debug] 11246#11246: *1 test location: ""<br><<< === здесь также ожидалось test location: "/7890/", как локейшен максимальной длины<br>2018/02/12 16:03:05 [debug] 11246#11246: *1 test location: "/456/"<br>2018/02/12 16:03:05 [debug] 11246#11246: *1 test location: "/23/"<br>2018/02/12 16:03:05 [debug] 11246#11246: *1 using configuration "=/23/"<br><br>=======================================================<br><br>2018/02/12 16:03:51 [debug] 11283#11283: *1 http request line: "GET /456/ HTTP/1.1"<br>2018/02/12 16:03:51 [debug] 11283#11283: *1 http uri: "/456/"<br><br>2018/02/12 16:03:51 [debug] 11283#11283: *1 test location: ""<br>2018/02/12 16:03:51 [debug] 11283#11283: *1 test location: "/456/"<br>2018/02/12 16:03:51 [debug] 11283#11283: *1 using configuration "=/456/"<br><br>=====================================================<br>Запрос в несуществующий локейшен<br><br>2018/02/12 16:22:47 [debug] 11285#11285: *3 http request line: "GET /7890/qqqqqqqqqqqq HTTP/1.1"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 http uri: "/7890/qqqqqqqqqqqq"<br><br>2018/02/12 16:22:47 [debug] 11285#11285: *3 test location: ""<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 test location: "/456/"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 test location: "/7890/"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 test location: ~ "(\.html$|\.php$)"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 using configuration ""<br><br>2018/02/12 16:22:47 [debug] 11285#11285: *3 rewrite phase: 3<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 http finalize request: 404, "/7890/qqqqqqqqqqqq?" a:1, c:1<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 http special response: 404, "/7890/qqqqqqqqqqqq?"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 test location: "@err404"<br>2018/02/12 16:22:47 [debug] 11285#11285: *3 using location: @err404 "/7890/qqqqqqqqqqqq?"<br>......<br>=====================================================<br><br>Т.е. работает-то оно правильно, но проверки существующих локейшенов почему-то всегда начинаюся с "/456/". Не понимаю, чем он такой особенный? Если отталкиваться от длины, так самый длинный "/7890/"<br><br>Спасибо.<br><br>--
</div></div>
            
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div></BODY></HTML>