【发布时间】:2016-05-20 06:47:49
【问题描述】:
在下面的代码中,索引指令将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 所以它似乎在尝试位置匹配之前使用索引。那么在上述情况下,为什么在应用索引后uri变为/page1.htm时location = /匹配?
是否先在未应用索引的情况下测试位置,然后仅在不匹配时才在应用索引的情况下再次测试它们?
【问题讨论】:
-
你认为的
http://DOMAIN请求,其实是http://DOMAIN/请求。 HTTP 协议就是这样工作的,路径部分不能为空,至少是一个斜线(/)。 -
是的,我知道。仍然没有解释如何使用上面详细说明的完全匹配来应用索引。
标签: nginx nginx-location