В приведенном ниже коде директива index добавляет page1.htm
к /
запросам. Поэтому я ожидаю, что точное совпадение для http://DOMAIN
будет соответствовать второму блоку местоположения, а не первому.
index page1.htm;
location = /
{
rewrite / /page2.htm;
}
location = /page1.htm
{
rewrite /page1.htm /page3.htm;
}
Но это первое подходящее место. http://DOMAIN
дает мне page2.htm
, а http://DOMAIN/page1.htm
дает мне page3.htm.
Какое точное соответствие обеспечивает префикс =
?
Я просмотрел много документов, но мне не ясно, что здесь происходит. Если первое местоположение удалено, то http://DOMAIN
дает мне page3.htm
, поэтому кажется, что он использует индекс перед попыткой сопоставления местоположения. Итак, в приведенном выше случае, почему location = /
соответствует, когда после применения индекса uri стал /page1.htm
?
Проверяются ли места сначала без применения индекса, а затем, только если совпадений нет, проверяются ли они снова с применением индекса?
http://DOMAIN
запросом, на самом деле являетсяhttp://DOMAIN/
запросом. Вот как работает HTTP-протокол, часть пути не может быть пустой, это всегда минимум одна косая черта (/
). - person Alexey Ten   schedule 10.02.2016