国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx Rewrite規則與使用介紹和技巧實例

2024-08-30 12:26:47
字體:
來源:轉載
供稿:網友

一.正則表達式匹配,其中:

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

二.文件及目錄匹配,其中:

* -f和!-f用來判斷是否存在文件
* -d和!-d用來判斷是否存在目錄
* -e和!-e用來判斷是否存在文件或目錄
* -x和!-x用來判斷文件是否可執行

三.rewrite指令的最后一項參數為flag標記,flag標記有:

1.last 相當于apache里面的[L]標記,表示rewrite。
2.break本條規則匹配完成后,終止匹配,不再匹配后面的規則。
3.redirect 返回302臨時重定向,瀏覽器地址會顯示跳轉后的URL地址。
4.permanent 返回301永久重定向,瀏覽器地址會顯示跳轉后的URL地址。

使用last和break實現URI重寫,瀏覽器地址欄不變。而且兩者有細微差別,使用alias指令必須用last標記;使用proxy_pass指令時,需要使用break標記。Last標記在本條rewrite規則執行完畢后,會對其所在server{……}標簽重新發起請求,而break標記則在本條規則匹配完成后,終止匹配。
例如:如果我們將類似URL/photo/123456 重定向到/path/to/photo/12/1234/123456.png

代碼如下:
rewrite "/photo/([0-9]{2})([0-9]{2})([0-9]{2})"/path/to/photo/$1/$1$2/$1$2$3.png ;

四.NginxRewrite 規則相關指令

1.break指令

使用環境:server,location,if;
該指令的作用是完成當前的規則集,不再處理rewrite指令。

2.if指令

使用環境:server,location
該指令用于檢查一個條件是否符合,如果條件符合,則執行大括號內的語句。If指令不支持嵌套,不支持多個條件&&和||處理。

3.return指令

語法:returncode ;
使用環境:server,location,if;
該指令用于結束規則的執行并返回狀態碼給客戶端。
示例:如果訪問的URL以”.sh”或”.bash”結尾,則返回403狀態碼
代碼如下:
location ~ .*/.(sh|bash)?$
{
return 403;
}

4.rewrite 指令

語法:rewriteregex replacement flag
使用環境:server,location,if
該指令根據表達式來重定向URI,或者修改字符串。指令根據配置文件中的順序來執行。注意重寫表達式只對相對路徑有效。如果你想配對主機名,你應該使用if語句,示例如下:
代碼如下:
if( $host ~* www/.(.*) )
{
set $host_without_www $1;
rewrite ^(.*)$  http://$host_without_www$1permanent;
}

5.Set指令

語法:setvariable value ; 默認值:none; 使用環境:server,location,if;
該指令用于定義一個變量,并給變量賦值。變量的值可以為文本、變量以及文本變量的聯合。
示例:set$varname “hello world”;

6.Uninitialized_variable_warn指令

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卓尼县| 绩溪县| 威远县| 安国市| 隆尧县| 永胜县| 汝南县| 申扎县| 镇坪县| 会泽县| 安仁县| 铁力市| 安远县| 彭山县| 府谷县| 博乐市| 荃湾区| 山西省| 娱乐| 玛多县| 元阳县| 同江市| 全州县| 怀化市| 海林市| 翁源县| 枣强县| 中卫市| 密山市| 纳雍县| 井研县| 页游| 西城区| 克山县| 涡阳县| 东乡县| 泾川县| 新泰市| 钦州市| 清流县| 廉江市|