nginx的rewrite笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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可以用到的全局变量