国产探花免费观看_亚洲丰满少妇自慰呻吟_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指令

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南雄市| 东港市| 桦甸市| 永吉县| 甘谷县| 通海县| 枣强县| 通辽市| 黄浦区| 孟津县| 翁源县| 天长市| 邳州市| 襄汾县| 阿拉善左旗| 长宁区| 海南省| 大城县| 灌阳县| 梅河口市| 延川县| 浦江县| 阆中市| 抚松县| 慈溪市| 凭祥市| 黄石市| 叙永县| 黑山县| 滦平县| 壶关县| 鹤岗市| 乌鲁木齐县| 合山市| 奉新县| 星子县| 张家口市| 昭平县| 固阳县| 兰考县| 华宁县|