天天看點

nginx 的 rewrite 常用全局變量及規則

$args 此變量與請求行中的參數相等

$content_length 等于請求行的“Content_Length”的值。

$content_type 等同與請求頭部的”Content_Type”的值

$document_root 等同于目前請求的root指令指定的值

$document_uri 與$uri一樣

$host 與請求頭部中“Host”行指定的值或是request到達的server的名字(沒有Host行)一樣

$limit_rate 允許限制的連接配接速率

$request_method 等同于request的method,通常是“GET”或“POST”

$remote_addr 用戶端ip

$remote_port 用戶端port

$remote_user 等同于使用者名,由ngx_http_auth_basic_module認證

$request_filename 目前請求的檔案的路徑名,由root或alias和URI request組合而成,如:/2016/abc.html

$request_body_file

$request_uri 含有參數的完整的初始URI,如/2013/81.html

$query_string 與$args一樣

$server_protocol 等同于request的協定,使用“HTTP/1.0”或“HTTP/1.1”

$server_addr request到達的server的ip,一般獲得此變量的值的目的是進行系統調用。為了避免系統調用,有必要在listen指令中指明ip,并使用bind參數。

$server_name 請求到達的伺服器名

$server_port 請求到達的伺服器的端口号

$uri 等同于目前request中的URI,可不同于初始值,例如内部重定向時或使用index

正規表達式比對,其中:

* ~ 為區分大小寫比對 

* ~* 為不區分大小寫比對 

* !~和!~*分别為區分大小寫不比對及不區分大小寫不比對

檔案及目錄比對,其中:

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

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

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

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

flag标記有:

* last 相當于Apache裡的[L]标記,表示完成rewrite 

* break 終止比對, 不再比對後面的規則 

* redirect 傳回302臨時重定向 位址欄會顯示跳轉後的位址 

* permanent 傳回301永久重定向 位址欄會顯示跳轉後的位址

域名重定向:

}

泛域名的解析:

if ($host != 'www.abc.com/bbb/') {

通路aaa目錄,自動跳轉到bbb目錄:

location / {

  rewrite ^/aaa/(.+)$ /bbb/$1 last;

  }

break;

禁止htaccess:

location ~/\.ht { 

deny all; 

本文轉自奇迹的少年部落格51CTO部落格,原文連結http://blog.51cto.com/raffaelexr/1793013如需轉載請自行聯系原作者

liliangchun

繼續閱讀