location匹配的url的語法規則:
syntax: location [=|~|~*|^~|@] /uri/
default: no
context: server
= 表示精確匹配
^~ 表示普通字元匹配,不繼續匹配正則,一般用來匹配目錄
~ 表示區分大小寫的正則匹配
~* 表示不區分大小寫的正則匹配
!~ 和!~* 分別表示區分大小寫和不區分大小寫不匹配的正則
@ 定義乙個命名的location,使用在內部重定向時,例如 error_page,try_files
/ 通用匹配,如果沒有其它location匹配,任何請求都會匹配到
1、location依據不同的字首=、^~、~、~* 和不帶任何字首的(因為表示可選,可以不要的),表達不同的含義,。簡單的說儘管location的/uri/ 配置一樣,但字首不一樣,表達的是不同的指令含義
2、查詢字串不在uri範圍內,例如:/films.htm?fid=123 的uri是/films.htm
3、這些不同字首,分為兩大類:正則location和普通location。~ 和~* 字首表示正則location ,~ 區分大小寫,~* 不區分大小寫;其他字首(包括:=、^~ 和@ )和無任何字首的都屬於普通location
匹配順序:
1、精確匹配到=定義的loacation,使用這個location,停止搜尋;
2、所有剩下的普通location,最長的匹配,如果這個最長location帶有^~,使用這個location,停止搜尋,否則:
3、儲存這個最長location;
4、按配置檔案中的順序匹配正則location;
5、匹配到第一條正則location,使用這個location,停止搜尋;
6、沒有匹配到正則location,使用第二步中儲存的最長location。
用一句話概括就是:先普通,後正則,正則location匹配讓步普通location的嚴格精確匹配結果,但覆蓋普通location的最長匹配結果
nginx之location 匹配規則
語法規則location uri 模式 含義location uri 表示精確匹配,只有完全匹配上才能生效 location uri 開頭對url路徑進行字首匹配,並且在正則之前。location pattern 開頭表示區分大小寫的正則匹配 location pattern 開頭表示不區分大小寫的...
nginx之location匹配規則
1.概述nginx server 塊下的乙個指令,每個server塊可以包含多個location塊。2.作用 1 基於nginx伺服器接收到的請求字串 例如 server name abc 對除虛擬主機名稱 也可以是ip別名 之外的字串 例如 abc 進行匹配,對特定的匹配進行處理 2 位址定向 資...
nginx學習之location塊
nginx官方文件中location塊的語法結構為 location uriuri 待匹配的字串,可以使不含正則表達的字串,如 myserver.php等 location模式 含義以 開頭 表示精準匹配,如只匹配根目錄結尾的請求,後面不能帶任何字串 以 開頭 表示uri以某個常規字串開頭,不是正則...