nginx rewrite 語法詳解

2021-07-08 15:34:19 字數 1551 閱讀 6817

rewrite 重寫

重寫中用到的指令

if  (

條件) {} 

設定條件

,再進行重寫 

set #

設定變數

return #

返回狀態碼 

break #

跳出rewrite

rewrite #重寫

if 

語法格式

if 空格 (

條件)

條件又怎麼寫?

答:3種寫法

1: 「=」

來判斷相等

,用於字串比較

2: 「~」

用正則來匹配

(此處的正則區分大小寫)

~* 不區分大小寫的正則

3: -f -d -e

來判斷是否為檔案

,為目錄

,是否存在.

例子:if  ($remote_addr = 192.168.1.100)

if (!-e $document_root$fastcgi_script_name)   注

, 此處還要加

break, 以

這個不存在頁面為例,

我們觀察訪問日誌

, 日誌中顯示的訪問路徑

,依然是

get /dsafsd.html http/1.1 提示

: 伺服器內部的

rewrite

和302

跳轉不一樣. 

跳轉的話

url都變了

,變成重新

請求404.html,

而內部rewrite,

上下文沒變,

就是說

fastcgi_script_name

仍然是

dsafsd.html,

因此 會迴圈重定向.

set

是設定變數用的

,可以用來達到多條件判斷時作標誌用.

達到apache

下的rewrite_condition

的效果

如下:

判斷ie

並重寫,

且不用break;

我們用set

變數來達到目的

rewrite語法

rewrite

正規表示式  定向後的位置 模式

goods-3.html ---->goods.php?goods_id=3

goods-([\d]+)\.html ---> goods.php?goods_id =$1  

location /ecshop 注意

:用url重寫時

,正則裡如果有

」{}」,

正則要用雙引號包起來

nginx Rewrite語法詳解

重寫中用到的指令 if 條件 設定條件,再進行重寫 set 設定變數 return 返回狀態碼 break 跳出rewrite rewrite 重寫 跳轉的話url都變了,變成重新http請求404.html,而內部rewrite,上下文沒變,就是說 fastcgi script name 仍然是 ...

Nginx Rewrite語法詳解

重寫中用到的指令 if 條件 設定條件,再進行重寫 set 設定變數 return 返回狀態碼 return403 break 跳出rewrite rewrite 重寫 if 語法格式 if 空格 條件 條件又怎麼寫?答 3種寫法 1 來判斷相等,用於字串比較 2 用正則來匹配 此處的正則區分大小寫...

tensorflow語法詳記(一)

最近一直在學習tensorflow的理論知識,趁著複習的機會,做乙個小整理,方便自己以後查閱。其中加粗部分是需要自己輸入的。1 定義常量 tf.constant data name name 2 建立乙個計算圖 tf.graph 3 對當前預設計算圖的引用 tf.get default graph ...