uri 匹配规则
语法:location [ = | ~ | ~* | ^~ ] uri { ... }
uri 有四种修饰符
=
精确匹配~
正则匹配(大小写敏感)~*
正则匹配 (大小写不敏感)^~
优先前缀匹配,忽略接下来的正则匹配行为
一个 location 可以有两种定义
- 正则表达式:以
~
(大小写敏感) 或者~*
(大小写不敏感) 修饰 - 前缀字符串
匹配顺序
- 检查精确匹配,如果命中,则终止匹配
- 检查前缀匹配,记录下最长前缀匹配,如果这个最长前缀以
^*
为修饰符,则终止匹配,前缀匹配与配置的顺序无关 - 检查正则匹配,以配置文件中的顺序开始,当某个正则表达式匹配成功后就终止匹配
- 如果没有成功匹配的正则表达式,则使用之前的最长前缀匹配
一些例子
location = / {
[ configuration A ]
}
location / {
[ configuration B ]
}
location /documents/ {
[ configuration C ]
}
location ^~ /images/ {
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
[ configuration E ]
}
匹配结果
/
: configuration A/index.html
:configuration B/documents/document.html
:configuration C/images/1.gif
:configuration D/documents/1.jpg
:configuration E