nginx URL 重寫if規則和nginx變數

2021-08-28 04:53:27 字數 1946 閱讀 3465

url重寫 ----- rewrite 

if指令  

if (condition)                               代表條件為真時的nginx操作     

condition條件的寫法:

1) 變數名 

如果變數的值為空,或者為以"0"開頭的任意字串,條件為假,其他則為真 

if ($slow)

2) 使用"="或者"!="比較變數的值

if ($request_method = post)

3) 使用正規表示式與變數的值進行匹配 

變數名與正規表示式間使用~, ~*, !~, !~*進行連線 

在正規表示式中使用()可以對字元進行分組,在{}中可以用$1....$9引用分組

正規表示式寫時不需要加雙引號,但是如果正規表示式中含有}和;字元,則必須要使用雙引號

4) 判斷請求的檔案是否存在(-f,!-f)

5) 判斷請求的目錄是否存在 (-d, !-d)

6) 判斷請求的目錄或檔案是否存在 (-e, !-e)

7) 判斷請求的檔案是否可執行 (-x, !-x)

nginx變數 

1) $args 

存放url中的請求指令 

存放請求報文中content_length欄位內容

3) $content_type 

存放請求報文中content_type欄位內容

4) $document_root 

存放針對當前請求的根路徑

5) $document_uri 

存放請求報文中的當前uri,並且不包括請求指令 

/reg/person        

6) $host 

存放請求報文中的主機部分 

存放客戶端**資訊(瀏覽器)

存放客戶端的cookie資訊

9) $limit_rate

存放nginx伺服器對網路連線速率的限制,也就是ngnix配置檔案中limit_rate指令的值 

10) $remote_addr 

存放客戶端位址 

11) $remote_port 

存放客戶端埠 

12) $remote_user 

存放客戶端的使用者名稱 

13) $request_body_file 

存放發給後端伺服器的本地檔案資源名稱 

14) $request_method 

存放客戶端請求資源的方法, get, post, put, delete, head 

15) $request_filename 

存放當前請求的資源檔案的路徑名 

16) $request_uri 

存放當前請求的uri,並且帶有請求指令 

與變數$args含義相同

18) $scheme 

存放客戶端請求使用的協議,如果http, https 

19) $server_protocol 

存放客戶端請求協議的版本    http/1.0   http/1.1 

20) $server_addr 

存放伺服器位址 

21) $server_name 

存放了客戶端請求到達的伺服器的名稱

22) $server_port 

存放了客戶端請求到達的伺服器的埠號

23) $uri 

與變數$document_uri含義相同 

nginx URL重寫rewrite規則

語法 rewrite regex replacement flag 如 此處的 1用於引用 jpg 匹配到的內容,又如 rewrite bbs redirect 如上例所示,replacement可以是某個路徑,也可以是某個url 常見的flag flag 作用last 基本上都用這個flag,表示...

Nginx URL重寫規則配置詳解

rewrite模組介紹 nginx的重寫模組是乙個簡單的正規表示式匹配與乙個虛擬堆疊機結合。依賴於pcre庫,因此需要安裝pcre。根據相關變數重定向和選擇不同的配置,從乙個location跳轉到另乙個location,不過這樣的迴圈最多可以執行10次,超過後nginx將返回500錯誤。同時,重寫模...

很不錯的NGINX URL重寫例項

本文介紹nginx url重寫的相關知識,包括301重定向的內容等,希望對大家有所幫助。nginx rewrite 實現二級網域名稱跳轉 當訪問跳轉到 方法一 這種方法瀏覽器位址會變www.jbxue.com test abc 實現訪問如下 複製 如下 server server 方法二 當訪問跳轉...