[轉帖]Nginx rewrite 規則 與 proxy_pass 實現

Nginx rewrite 規則 與 proxy_pass 實現

 
https://www.cnblogs.com/jicki/p/5546916.html

 

Nginx rewrite 規則  與 proxy_pass 實現html

 
 
------------------------------------------------------------------------------------------------------
~         大小寫敏感匹配
~*        大小寫不敏感匹配
!~        大小寫敏感不匹配
!~*       大小寫不敏感不匹配
------------------------------------------------------------------------------------------------------
 
 
------------------------------------------------------------------------------------------------------
-f        檢測文件存在
-d        檢測目錄存在
-e        檢測文件,目錄或者符號連接存在
-x        檢測文件可執行
------------------------------------------------------------------------------------------------------
 
 
------------------------------------------------------------------------------------------------------
break     –  中止rewrite檢測,也就是說當含有break flag的rewrite語句被執行時,該語句就是rewrite的最終結果。
last      –  中止rewrite檢測,可是跟break有本質的不一樣,last的語句不必定是最終結果。
redirect  –  返回302臨時重定向,通常用於重定向到完整的URL(包含http:部分)
permanent –  返回301永久重定向,通常用於重定向到完整的URL(包含http:部分)
------------------------------------------------------------------------------------------------------
 
 
一些實際例子
 
 
 
if($http_host = www.qq.com)                  
{
 rewrite (.*) http://www.baidu.com$1 permanent;
 }
 

// 若是請求的url是 www.qq.com  則永久重定向到 www.baidu.comgit

 

 

 
 
 
 
 
 
rewrite ^/([0-9]+).html$ /user/id=$1 last;
 
 

// 若是 www.qq.com/user/id=123456   則顯示爲 www.qq.com/123456.htmlsvn

 

 

 
 
 
 
 
 location ^~ /qq/
 {
    proxy_pass http://www.qq.com/;
 }
 

//若是請求目錄爲 /qq/  則代理到 www.qq.com     若是www.qq.com/qq/  則代理到 www.qq.compost

 

 

 
 
 
 
location ~ ^/data
{
 deny all;
}
 

// 禁止 data 目錄下全部文件的請求url

 

 

 
 
 
 
 
 
if (!-f $request_filename)
{
 break;
 proxy_pass  http://www.qq.com;
}
 

// 若是請求的文件名不存在 則代理到 www.qq.comspa

 

 

 
 
 
 
 
 
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
 

// 若是請求的目錄存在  則自動增長 / 符號  代理

 

 

 

 

禁止訪問 /svn/ git  cvs 這幾個目錄...防止 svn 文件下載··源碼泄漏code

 

  location ~ .*\.(svn|git|cvs)htm

  {blog

   deny all;

 

  }

相關文章
相關標籤/搜索