Nginx的rewrite指令

rewrite指令來源于模塊ngx_http_rewrite_module
用于使用PCRE正則表達(dá)式更改請求URI,返回重定url
Rewrite是由pcre模塊提供功能,提供偽靜態(tài)等功能。
rewrite 存在于if,location,server標(biāo)簽中
在server塊下,會優(yōu)先執(zhí)行rewrite部分,然后才會去匹配location塊
rewrite指令:
last:本條規(guī)則匹配完畢后繼續(xù)匹配之后的location url,最多循環(huán)10次。
break:本條規(guī)則匹配完成即終止,不再匹配后面的任何規(guī)則。
permanent:返回302臨時重定向,瀏覽器地址會顯示跳轉(zhuǎn)后的URL地址。
redirect:返回301永久重定向,瀏覽器地址欄會顯示跳轉(zhuǎn)后的URL地址。
例如域名跳轉(zhuǎn):

server {
 listen 80;
 server_name abc.com;
 rewrite ^/(.*) http://www.def.com/$1 permanent;
}
server {
 listen 80;
 location / {
    root /www/;
    index index.html;
  }
  error_log    logs/error_www.abc.com.log error;
  access_log    logs/access_www.abc.com.log    main;
}

文件不存在時候重定向

if (!-e $request_filename) {
  rewrite ^/(.*)  http://www.def.com/  permanent
}

根據(jù)agent重定向目錄其他目錄

if ($http_user_agent ~ MSIE) {
  rewrite ^(.*)$ /nginx-ie/$1 break;
}

改寫URL內(nèi)容
/23423/xxx ---- /xxx?id=23423

rewrite ^/(/d+)/(.+)/ /$2?id=$1 last;

防盜鏈
valid_referers [none|blocked|server_names|string]
該指令會根據(jù)Referer Header頭的內(nèi)容分配一個值為0或1給變量$invalid_referer。如果Referer Header頭不符合valid_referers指令設(shè)置的有效Referer,變量$invalid_referer
將被設(shè)置為1.
該指令的參數(shù)可以為下面的內(nèi)容:
none:表示無Referer值的情況。
blocked:表示Referer值被防火墻進(jìn)行偽裝。
server_names:來源頭部包含當(dāng)前的server_names(當(dāng)前域名)
string:
arbitrary string
任意字符串,定義服務(wù)器名或者可選的URI前綴.主機(jī)名可以使用*開頭或者結(jié)尾,在檢測來源頭部這個過程中,來源域名中的主機(jī)端口將會被忽略掉
regular expression
正則表達(dá)式,~表示排除https://或http://開頭的字符串.

location ~* \.(gif|jpg|png|swf|flv)$ { 
  valid_referers none blocked  server_names *.xxx.com xxx.com ; 
  if ($invalid_referer) { 
    return 403; 
  } 
} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Nginx簡介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,050評論 0 9
  • 1.ngnix介紹 ngnix www服務(wù)軟件 俄羅斯人開發(fā) 開源 性能很高 本身是一款靜態(tài)WWW軟件 靜態(tài)小文件...
    逗比punk閱讀 2,125評論 1 6
  • Nginx重寫與轉(zhuǎn)發(fā) Nginx通過ngx_http_rewrite_module模塊,實現(xiàn)Url的重寫和轉(zhuǎn)發(fā)。 ...
    你東哥呀閱讀 2,861評論 0 2
  • location正則寫法 location使用語法: location [ = | ~ | ~* | ^~ ] u...
    Zhang21閱讀 14,607評論 0 5
  • 1.簡介: ? Nginx:engine X ,2002年,開源,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 1,895評論 0 3