nginx的rewrite笔记

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

nginx的rewrite相关说明:

Nginx的Rewrite规则采用PCRE(perl)兼容正则表达式进行规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,须编译安装PCRE库。

示例:

http{

server{

//以下为Rewrite部分

location ^~ /iloong/pservices {

//rewrite第一个参数为原URL,第二个参数为rewrite之后的URL,匹配遵循PCRE规则

rewrite

^/iloong/pservices/(.*)$ /php/pservices/admin.php/$1 last;

}

location ^~ /iloong/pui {

rewrite

^/iloong/pui/(.*)$ /php/pui/admin.php/$1 last;

}

}

}

指令说明:

1、指令:break

默认值:none

使用环境:server location if

该指令的作用是完成当前的规则集,不再处理rewrite指令

2、指令:if(condition){…}

默认值:none

使用环境:server location

该指令用于检查一个条件是否符合,如果条件符合,则执行大括号内的语句。If指令不支持嵌套,不支持多个条件&&和||处理。

以下信息可以被指定为条件:

3、指令:return

语法:return code

默认值:none

使用环境:server location if

该指令用于结束规则的执行并返回状态码给客户端。详细状态码说明见“张宴Nginx”

4、指令:rewrite

语法:rewrite regex replacement flag

默认值:none

使用环境:server location if

该指令根据表达式来重定向URL,或者修改字符串。指令根据配置文件中的顺序来执行。

注意:重写表达式只对相对路径有效。如果替换串以http://开头,将会采用301或302跳转进行URL重定向。

Flag标记说明:

注意:

因此,一般在根location中(即location /{……})或直接在server标签中编写rewrite规则,推荐使用last标记,在

非根location中(例如location /cms/{……}),则使用break

标记。

如果被替换的URI中含有参数(即类似/app/test.php?id=5之类的URI),默认情况下参数会自动附加到替换串上,你可以通过在替换串的末尾加上“?”标记来解决这一问题。

5、set指令

语法:set variable value

默认值:none

使用环境:server location if

该指令用于定义一个变量,并给变量赋值。变量的值可以是文本、变量及文本变量的联合

6、Nginx Rewrite可以用到的全局变量

相关文档
最新文档