nginx location规则优先级测试

基本语法 正则表达式

1 ide

location [=|~|~*|^~|@] /uri/ {} 测试

=〗表示精确匹配,若是找到,当即中止搜索并当即处理此请求。
~ 〗 表示区分大小写匹配
~*〗 表示不区分大小写匹配
^~ 〗 表示只匹配字符串,不查询正则表达式。
@〗 指定一个命名的location,通常只用于内部重定向请求。
spa

 

 

 

先来测试下区分大小写和不区分大小写的优先级3d

 

 

 

测试结果为orm

http://192.168.1.164/2a.txt ------------501blog

http://192.168.1.164/2A.txt------------504排序

 

将顺序反下,将~*放前面ci

 

 

 

结果字符串

http://192.168.1.164/2a.txt ----------501

http://192.168.1.164/2A.txt ----------501

 

结论: 去分和不区分大小写的正则匹配优先级相同,以前后顺序来决定匹配哪个.

 

 

再来比较=~的优先级

 

 

 

结果

http://192.168.1.164/2a.txt -------------502

结论: =的优先级比~

 

再来比较下 ^~ ~的优先级

 

 

结果

http://192.168.1.164/2a.txt  --------------504

 

结论

^~的优先级比~

 

 

再测试 ^~ = 的优先级

 

 

 

结果

http://192.168.1.164/2a.txt  --------------504

 

结论       =的优先级比 ^~

 

再来测试^~同级之间的优先级

 

 

结果

http://192.168.1.164/2a.txt  --------------504

结论  ^~优先匹配的是从根开始的匹配

 

再来看什么都不加与~的优先级比较

 

 

结果

http://192.168.1.164/2a.txt  --------------504

结论       不加的优先级比~

 

优先级排序为

不加 <   ~/~*   <    ^~   <    =

 

~*~正则匹配的优先级按前后次序来决定的

^~同级之间的匹配是按照根目录顺序来的

相关文章
相关标签/搜索