break
语法:break默认值:none
使用字段:server, location, if
完成当前设置的规则,停止执行其他的重写指令。
if
语法:if (condition) { … }
默认值:none
使用字段:server, location
注意:在使用if指令之前请查看if is evil page并且尽量考虑用try_files代替。
判断一个条件,如果条件成立,则后面的大括号内的语句将执行,相关配置从上级继承。
可以在判断语句中指定下列值:
- 一个变量的名称;不成立的值为:空字符传”“或者一些用“0”开始的字符串。
- 一个使用=或者!=运算符的比较语句。
- 使用符号~*和~模式匹配的正则表达式:
- ~为区分大小写的匹配。
- ~*不区分大小写的匹配(firefox匹配FireFox)。
- !~和!~*意为“不匹配的”。
- 使用-f和!-f检查一个文件是否存在。
- 使用-d和!-d检查一个目录是否存在。
- 使用-e和!-e检查一个文件,目录或者软链接是否存在。
- 使用-x和!-x检查一个文件是否为可执行文件。
return
语法:return code
默认值:none
使用字段:server, location, if
这个指令结束执行配置语句并为客户端返回状态代码,可以使用下列的值:204,400,402-406,408,410, 411, 413, 416与500-504。此外,非标准代码444将关闭连接并且不发送任何的头部。
rewrite
语法:rewrite regex replacement flag
默认值:none
使用字段:server, location, if
按照相关的正则表达式与字符串修改URI,指令按照在配置文件中出现的顺序执行。
可以在重写指令后面添加标记。
如果替换的字符串以http://开头,请求将被重定向,并且不再执行多余的rewrite指令。
尾部的标记(flag)可以是以下的值:
- last - 完成重写指令,之后搜索相应的URI或location。
- break - 完成重写指令。
- redirect - 返回302临时重定向,如果替换字段用http://开头则被使用。
- permanent - 返回301永久重定向。