重寫中用到的指令
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中寫成這樣寫是無法啟...