NGINX 通過 rewrite實現對URL的改寫

2021-08-28 01:36:32 字數 1437 閱讀 9116

$args :這個變數等於請求行中的引數,同$query_string

$content_length : 請求頭中的content-length欄位。

$content_type : 請求頭中的content-type欄位。

$document_root : 當前請求在root指令中指定的值。

$host : 請求主機頭欄位,否則為伺服器名稱。

$http_user_agent : 客戶端agent資訊

$http_cookie : 客戶端cookie資訊

$limit_rate : 這個變數可以限制連線速率。

$request_method : 客戶端請求的動作,通常為get或post。

$remote_port : 客戶端的埠。

$remote_user : 已經經過auth basic module驗證的使用者名稱。

$request_filename : 當前請求的檔案路徑,由root或alias指令與uri請求生成。

$scheme : http方法(如http,https)。

$server_protocol : 請求使用的協議,通常是http/1.0或http/1.1。

$server_name : 伺服器名稱。

$server_port : 請求到達伺服器的埠號。

$request_uri : 包含請求引數的原始uri,不包含主機名,如:」/foo/bar.php?arg=baz」。

$uri : 不帶請求引數的當前uri,$uri不包含主機名,如」/foo/bar.html」。

$document_uri : 與$uri相同。

符號解釋:

^ 匹配字串的開始

/ 匹配網域名稱的分隔符

. 匹配除換行符以外的任意字元

* 重複零次或更多次

(.*) 匹配任意字元

.* 匹配任意文字

$ 匹配字串的結束

例子

server

listen 80;

server_name www.xyz.com;

index index.htm index.php;

root  /export/home/www

//下面條件不能用數**算  實現的功能是訪問www.abc.com/index.php?type=2&tid=id12345

//都跳轉成www.xyz.com/index.php?type=2&tid=id12345

if ($host = "www.abc.com"  ) # 如果host不是xuexb.com,則301到xuexb.com中 if ( $host != "xuexb.com" ) # 如果請求型別不是post則返回405 if ($request_method = post) # 如果引數中有 a=1 則301到指定網域名稱 if ($args ~ a=1)

Nginx常用rewrite跳轉重定向例項

如果需要開啟帶有play的鏈結就跳轉到play,不過 admin play這個不能跳轉 if request filename play if request filename admin if payvar 1 if request uri gid 6 正規表示式匹配,其中 為區分大小寫匹配 為不...

nginx通過rewrite方式處理路由

首先需要在nginx.conf中增加一行,具體如圖1所示 include home www htaccess 這一行,就說明你要讓該檔案中的rewrite配置生效 然後我們編輯.htaccess 具體 if e request filename 這幾句話的意思就是讓所有找不到的檔案都作為url引數,...

Nginx基礎 Rewrite規則

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