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

首頁 > 網站 > Nginx > 正文

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

2024-08-30 12:22:47
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx Rewrite規則與使用介紹和技巧實例,本文講解了正則表達式匹配、文件及目錄匹配、flag標記、Nginx Rewrite相關指令等內容,需要的朋友可以參考下

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

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

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

* -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指令

語法:uninitialized_variable_warnon|off
使用環境:http,server,location,if
該指令用于開啟和關閉未初始化變量的警告信息,默認值為開啟。

五.Nginx的Rewrite規則編寫實例

1.當訪問的文件和目錄不存在時,重定向到某個php文件
復制代碼 代碼如下:
if( !-e $request_filename )

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长垣县| 武乡县| 江都市| 东莞市| 兴宁市| 侯马市| 于田县| 定襄县| 芜湖县| 洪江市| 万源市| 新竹市| 丹东市| 柞水县| 南平市| 宁晋县| 绵竹市| 武乡县| 瑞昌市| 天门市| 望江县| 宜宾市| 绿春县| 牙克石市| 渭源县| 南丰县| 汝南县| 华宁县| 昭觉县| 乡城县| 蓝山县| 黑山县| 镇康县| 许昌县| 宁晋县| 武义县| 措勤县| 庆阳市| 平陆县| 平谷区| 达尔|