基本语法
1
|
location [=|~|~*|^~|@] /uri/ { … }
|
〖=〗表示精确匹配,若是找到,当即中止搜索并当即处理此请求。
〖~ 〗 表示区分大小写匹配
〖~*〗 表示不区分大小写匹配
〖^~ 〗 表示只匹配字符串,不查询正则表达式。
〖@〗 指定一个命名的location,通常只用于内部重定向请求。
先来测试下区分大小写和不区分大小写的优先级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
结论 不加的优先级比~低
优先级排序为
不加 < ~/~* < ^~ < =
~与*~正则匹配的优先级按前后次序来决定的
^~同级之间的匹配是按照根目录顺序来的