break指令
语法:break
默认值:none
使用字段:server, location, if
作用:完成当前设置的重写规则,停止行其他的重写规则。
if 块
语法:if (condition) { … }
默认值:none
使用字段:server, location
注意:尽量考虑使用trp_files代替。
条件遵循正则及bash样式
return 块
语法: return code
默认值:none
使用字段: server, location, if
作用:停止处理并为客户端返回状态码。
set 块
语法:set variable value
默认值:none
使用字段:server, location, if
作用:为给定的变量设置一个特定值。
rewrite 块
语法:rewrite regex replacement flag
默认值:none
使用字段:server, location, if
作用:按照相关的正则表达式与字符串修改URI,指令按照在配置文件中出现的顺序执行。可以在重写指令后面添加标记。
注意:rewrite根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可以执行10次,超过后nginx将返回500错误。同时,重写模块包含set指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。
- 实例:
server {
location / {
# 用单引号引起来, 避免{}
rewrite '^/images/([a-z]{2})/(.*)\.(png|jpg)$' /data?file=$2.$3;
set $img_file $2;
set $img_tpye $3;
}
...
}