Nginx:Nginx配置url重定向


符號含義:

 

正則表達式匹配:

 ~ 為區分大小寫匹配

 ~* 為不區分大小寫匹配

 !~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配

 

文件及目錄匹配:

 -f和!-f用來判斷是否存在文件

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

 -e和!-e用來判斷是否存在文件或目錄

 -x和!-x用來判斷文件是否可執行

 

flag標記

 last 相當於Apache里的[L]標記,表示完成rewrite;完成重寫指令,之后搜索相應的URI或location。

 break 終止匹配, 不再匹配后面的規則;完成重寫指令。

 redirect 返回302臨時重定向;如果替換字段用http://開頭則被使用。

permanent 返回301永久重定向 地址欄會顯示跳轉后的地址。

 

可用的全局變量有,可以用做條件判斷:

$args, 請求中的參數;

$content_length, HTTP請求信息里的"Content-Length";

$content_type, 請求信息里的"Content-Type";

$document_root, 針對當前請求的根路徑設置值;

$document_uri, 與$uri相同;

$host, 請求信息中的"Host",如果請求中沒有Host行,則等於設置的服務器名;

$limit_rate, 對連接速率的限制;

$request_method, 請求的方法,比如"GET""POST"等;

$remote_addr, 客戶端地址;

$remote_port, 客戶端端口號;

$remote_user, 客戶端用戶名,認證用;

$request_filename, 當前請求的文件路徑名

$request_body_file

$request_uri, 請求的URI,帶查詢字符串;

$query_string, 與$args相同;

$scheme, 所用的協議,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect;

$server_protocol, 請求的協議版本,"HTTP/1.0""HTTP/1.1";

$server_addr, 服務器地址,如果沒有用listen指明服務器地址,使用這個變量將發起一次系統調用以取得地址(造成資源浪費);

$server_name, 請求到達的服務器名;

$server_port, 請求到達的服務器端口號;

$uri, 請求的URI,可能和最初的值有不同,比如經過重定向之類的。


可以使用在 server, location, if 區域的關鍵字:

 

return指令:該指令用於結束規則的執行並返回狀態碼給客戶端

示例:如果訪問的URL以".sh"".bash"結尾,則返回403狀態碼
location ~ .*.(sh|bash)?$
{
return 403;
}

 

rewrite 指令:使用nginx提供的全局變量或自己設置的變量,結合正則表達式和標志位實現url重寫以及重定向

rewrite 語法格式:

rewrite regex(正則) replacement flag (rewrite 源地址 目標地址)

flag: 斷開上次永久重定向
last: last一般寫在server和if中 停止執行其他重寫規則,根據URI繼續搜索其他location
break:break一般使用在location url重寫后,直接使用當前資源,不再執行location里余下的語句,完成本次請求
redirect:302臨時重定向,地址欄改變,爬蟲不更新URI
permanent:301永久重定向。地址欄改變,爬蟲更新URI

示例:把http://example.com/old.php?para=xxx 重定向到 http://example.com/new

不去參數:

寫法:rewrite ^/old.php(.*) /new permanent;

結果:http://example.com/new?para=xxx


去掉參數:

寫法:rewrite ^/old.php(.*) /new? permanent;

結果:http://example.com/new

 

 

詳情請看:https://blog.csdn.net/luomao2012/article/details/81167945


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM