基本語法
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
結論 不加的優先級比~低
優先級排序爲
不加 < ~/~* < ^~ < =
~與*~正則匹配的優先級按前後次序來決定的
^~同級之間的匹配是按照根目錄順序來的