nginx-location匹配优先级
精确匹配 (区分大小写)
location = /img {
…
}
起始字符穿匹配 ^~ 会检测所有匹配项,(区分大小写)
location ^~ /img {
…
}
正则匹配
location ~ /imge{ (区分大小写)
…
}
location ~* /img { (不区分大小写)
…
}
普通起始字符串匹配
location /imges {: (区分大小写)
…
}
精确匹配最优先,当:起始匹配字符串长度<=uri长度<普通起始字符串匹配长度 起始匹配字符串长度优先
当 uri长度 >= 普通起始字符串匹配长度 正则匹配优先
不存在普通起始字符串匹配时,起始字符串匹配优先
两个正则匹配不分优先级,谁写在配置文件前面谁优先。
示例 配置文件如图:
当执行
curl -I http://www.a.com/img
curl -I http://www.a.com/imge 匹配到^~ /img
curl -I http://www.a.com/imges 匹配到 ~ /img
curl -I http://www.a.com/imgesssss 匹配到 ~ /img
将~ 调换位置 ~*
curl -I http://www.a.com/imge 匹配~* /img
curl -I http://www.a.com/imagessss 匹配~* /img