nginx的rewrite配置

指令语法

1
rewrite regex replacement [flag];

例子,匹配成功后跳转到百度,执行永久301跳转

1
rewrite ^/(.*) http://www.baidu.com/$1 permanent;

应用位置

serverlocationif

flag参数

参数 描述
last 本条规则匹配完成后继续向下匹配新的location URI规则
break 本条规则匹配完成后终止,不在匹配任何规则
redirect 返回302临时重定向
permanent 返回301永久重定向

lastbreak用来实现URL重写,浏览器地址栏的URL地址不变,但在服务器访问的程序及路径发生了变化。

redirectpermanent用来实现URL跳转,浏览器地址会显示跳转后的URL地址。

lastbreak标记的实现功能类似,但二者之间有细微的差别,使用alias指令时必须用last标记,使用proxy_pass指令时要使用break标记。last标记在本条rewrite规则执行完毕后,会对其所在的server{}标签重新发起请求,而break标记则会在本条规则匹配完成后,终止匹配,不再匹配后面的规则。

常用正则表达式

字符 描述
\ 将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用
^ 匹配输入字符串的起始位置
$ 匹配输入字符串的结束位置
* 匹配前面的字符零次或者多次
+ 匹配前面字符串一次或者多次
? 匹配前面字符串的零次或者一次
. 匹配除”\n”之外的所有单个字符