nginx location匹配規則

2021-10-01 04:04:02 字數 1321 閱讀 2009

"="字首指令匹配,如果匹配成功,則停止其他匹配

普通字串指令匹配,順序是從長到短,匹配成功的location如果使用^~,則停止其他匹配(正則匹配)

正規表示式指令匹配,按照配置檔案裡的順序,成功就停止其他匹配

如果第三步中有匹配成功,則使用該結果,否則使用第二步結果

匹配的順序是先匹配普通字串,然後再匹配正規表示式。另外普通字串匹配順序是根據配置中字元長度從長到短,也就是說使用普通字串配置的location順序是無關緊要的,反正最後nginx會根據配置的長短來進行匹配,但是需要注意的是正規表示式按照配置檔案裡的順序測試。找到第乙個比配的正規表示式將停止搜尋。

一般情況下,匹配成功了普通字串location後還會進行正規表示式location匹配。有兩種方法改變這種行為,其一就是使用「=」字首,這時執行的是嚴格匹配,並且匹配成功後立即停止其他匹配,同時處理這個請求;另外一種就是使用「^~」字首,如果把這個字首用於乙個常規字串那麼告訴nginx 如果路徑匹配那麼不測試正規表示式。

location = /uri    =開頭表示精確匹配,只有完全匹配上才能生效。

location ^~ /uri   ^~ 開頭對url路徑進行字首匹配,並且在正則之前。

location ~ pattern  ~開頭表示區分大小寫的正則匹配。

location ~* pattern  ~*開頭表示不區分大小寫的正則匹配。

location /uri     不帶任何修飾符,也表示字首匹配,但是在正則匹配之後。

location /      通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default。 

字元描述

\將後面接著的字元標記為乙個特殊字元或者乙個原義字元或乙個向後引用

^匹配輸入字串的起始位置

$匹配輸入字串的結束位置

*匹配前面的字元零次或者多次

+匹配前面字串一次或者多次

?匹配前面字串的零次或者一次

.匹配除「\n」之外的所有單個字元

(pattern)

匹配括號內的pattern

標記符號

說明last

本條規則匹配完成後繼續向下匹配新的location uri規則

break

本條規則匹配完成後終止,不在匹配任何規則

redirect

返回302臨時重定向

permanent

返回301永久重定向

例如對驗證檔案mp_verfiy_*********.txt  位於/somepath/下

location ~ mp.*\.txt$

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,不使用正規表示式,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error pag...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error page,try fil...

nginx location匹配規則

location匹配命令 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 進行普通字元精確匹配 定義乙個命名的 location,使用在內部定向時,例如 error page,try fil...