Nginx Rewrite規則初探

2021-07-05 12:36:41 字數 1561 閱讀 9980

nginx  rewrite(nginx url位址重寫)

rewrite 主要的功能就是實現url的重寫,nginx的rewrite規則採用pcre,perl相容正規表示式的語法規則匹配,如果需要nginx的rewrite功能,在編譯nginx之前,需要編譯安裝pcre庫。

通過rewrite規則,可以實現規範的url、根據變數來做url轉向及選擇配置。

if        指令

規則語法:

rewrite 語法規則:

變數名:

變數名可以使用"="或"!="運算子

~  符號表示區分大小寫字母匹配

~* 符號表示不區分大小寫字母匹配

!~ 和 !~ 與~  !~ 相反

-f 和 !-f   用來判斷檔案是否存在

-d 和 !-d   用來判斷目錄是否存在

-e 和 !-e   用來判斷檔案或目錄是否存在

-x 和 !-x   用來判斷檔案是否可以執行

也支援$1到$9位置引數

return指令

示例:,如果訪問的url以.sh .bash 結尾,返回狀態碼403

location ~ .*\.(sh|bash)?$  

rewrite指令

rewrite指令的最後一項引數為flag標記,支援的flag標記主要有以下幾種:  

last :相當於apache里德(l)標記,表示完成rewrite;

break;本條規則匹配完成後,終止匹配,不再匹配後面的規則

last和break用來實現url重寫,瀏覽器位址列url位址不變

例項:將訪問/b跳轉到/bbs目錄上去:

location /b     

location /bbs

rewrite規則編寫例項

1,將原來要訪問/b的目錄重寫為/bbs

核心語句:

[

rewrite ^/b/?$ /bbs permannet;

2,根據不同的瀏覽器將得到不同的結果。

3.防止盜鏈:

根據referer資訊防止盜鏈,**如下:

4.實現網域名稱跳**

server

nginx rewrite 重寫規則

1注意點 在重寫的時候,一定要注意,if 和後面的括號是要有乙個空格的 if host com 2.在重寫的時候,需要使用正規表示式 host 代表網域名稱,首先判斷網域名稱,來看這個正則 rewrite de permanent 代表網域名稱下面的 com de 這個路徑下面的,重寫為 其中 1代...

Nginx rewrite配置規則

作為乙個被廣泛用於反向 的高效能web伺服器,nginx通常處於承接 流量的最前端。在實際專案中,經常會用nginx對特定的客戶端請求做改寫 即rewrite 後返回或將改寫後的request url傳給後端real server做業務邏輯的處理。本文是對nginx rewrite規則的學習筆記,參...

Nginx Rewrite重寫規則

rewrite 主要的功能就是實現url的重寫,nginx的rewrite功能是使用nginx提供的全域性變數或自己設定的變數,結合正規表示式和標誌位實現url重寫以及重定向。本文給大家講述實際專案中常用到的rewrite規則。nginx的rewrite功能需要pcre軟體的支援,即通過perl相容...