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

結論       不加的優先級比~

 

優先級排序爲

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

 

~*~正則匹配的優先級按前後次序來決定的

^~同級之間的匹配是按照根目錄順序來的

相關文章
相關標籤/搜索