nginx location規則與位址重寫

2021-10-07 14:43:44 字數 1312 閱讀 7574

一、location規則介紹

(1)nginx通過攔截到的請求去對配置好的location塊進行請求**。

(2)語法規則:

location [=|~|~*|^~] /uri/

= :開頭表示精準匹配

~: 開頭表示區分大小寫的正則匹配

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

^~: 開頭表示uri以某個常規字串開頭。例:請求為/static/20%/aa 可以被^~ /static/ /aa匹配到

!~:開頭表示區分大小寫不匹配

!~*:開頭表示不區分大小寫不匹配。

/:通用匹配

優先規則:= ^~ 按檔案中順序的正則匹配 /

二、位址重寫原理與實踐

(1)介紹 

rewirte 即url 重寫,就是把傳入web的請求重定向到其他url的過程。主要實現url位址的重定向。 需要pcre軟體支援。

1、url rewirte 最常見的應用是偽靜態化,是將動態頁面顯示為靜態頁面的技術。

2、從安全角度上講,靜態的url位址可以帶來更高的安全性。

3、實現**位址跳轉。

(2)rewirte語法

rewrite  [flag];

關鍵字 正則 替代內容 flag標記

flag標記說明:

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

break #本條規則匹配完成即終止,不再匹配後面的任何規則

redirect #返回302臨時重定向,瀏覽器位址會顯示跳轉後的url位址

permanent #返回301永久重定向,瀏覽器位址列會顯示跳轉後的url

redirect和permanent的區別:

permanent更加友好,301會直接跳轉到新位址;302會比較二個介面更加直觀,然後顯示比較好的乙個

(1)匹配過程中可以引用的一些全域性變數

全域性變數

解釋$request_filename

當前請求檔案的路徑名(帶root指定的路徑)

$request_uri

當前請求檔案的路徑名(不帶root指定的路徑)

$request_method

請求的方法(「get」、「post」)

$request_addr

客戶端位址

$request_port

客戶端埠號

$server_addr

伺服器位址

$server_name

請求到達的伺服器名

nginx location匹配規則

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

nginx location匹配規則

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

nginx location匹配規則

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