Nginx 09 Rewrite語法詳解

2021-08-23 14:38:33 字數 1041 閱讀 9895

重寫中用到的指令

if  (條件) {}  設定條件,再進行重寫 

set #設定變數

return #返回狀態碼

break #跳出rewrite

rewrite #重寫

if 語法格式

if 空格 (條件)
條件的3種寫法

「=」來判斷相等, 用於字串比較

「~」 用正則來匹配(此處的正則區分大小寫)

~* 不區分大小寫的正則

-f -d -e來判斷是否為檔案,為目錄,是否存在.

例子:

如果訪問ip為192.168.1.100,返回403

if ($remote_addr = 192.168.1.100)

如果是ie瀏覽器訪問,重寫位址

某頁面不存在,重寫至404.html

if (!-e $document_root$fastcgi_script_name)

注: 此處還要加break

以 xx.com/dsafsd.html這個不存在頁面為例,

我們觀察訪問日誌, 日誌中顯示的訪問路徑,依然是get /dsafsd.html http/1.1

跳轉的話url都變了,變成重新http請求404.html, 而內部rewrite, 上下文沒變,

就是說 fastcgi_script_name 仍然是 dsafsd.html,因此 會迴圈重定向

set 是設定變數用的, 可以用來達到多條件判斷時作標誌用.達到apache下的 rewrite_condition的效果

如下: 判斷ie瀏覽器並重寫,且不用break; 我們用set變數來達到目的

Nginx基礎 Rewrite規則

rewrite是nginx乙個特別重要的指令,該指令可以使用正規表示式改寫uri。可以指定乙個或多個rewrite指令,按順序匹配。1 區分大小寫匹配 2 不區分大小寫匹配 3 和 區分大小寫不匹配及不區分大小寫不匹配1 f和 f 判斷是否存在檔案 2 d和 d 判斷是否存在目錄 3 e和 e 判斷...

Nginx 基礎模組 rewrite

rewrite location 來吧!展示!rewrite規則可以實現對url的重寫,以及重定向 url訪問跳轉,支援開發設計,如頁面跳轉,相容性支援,展示效果等 seo優化 維護 後台維護 流量 等 安全nginx跳轉需求的實現方式 使用 rewrite進行匹配跳轉 使用if匹配全域性變數後跳轉...

Nginx的Rewrite的配置

nginx的rewrite 經過網上查閱和測試,發現nginx的rewrite規則和apache的rewite規則差別不是很大,幾乎可以直接使用。比如在apache中這樣寫規則 1rewrite 0 9 html viewthread.php?tid 1 last 而在nginx中寫成這樣寫是無法啟...