Nginx之location匹配規則(個人總結)

2021-09-20 22:01:29 字數 1093 閱讀 9067

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以某個常規字串開頭,不是正則...