Syntax: rewrite regex replacement [flag];
Default: —
Context: server, location, if
rewrite: 一般都是rewrite
regex: 可以是字符串或者正则表达式来表示想要匹配的目标URL
replacement: 将正则匹配的内容替换成replacement
flag: 重写类型:
- last: 本条规则匹配完成后,继续向下匹配新的location URI规则;相当于Apache里的(L)标记,标识rewrite;浏览器地址栏URL地址不变;一般写在server和if中;
- break: 本条规则匹配完成后,种植匹配,不在匹配后面的规则,浏览器地址栏URL地址不变;一般使用在location中;
- redirect: 返回302临时重定向,浏览器地址会显示跳转之后的URL地址;
- permanent: 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址;
- rewrite的匹配遵循正则表达式,其中有两个需要强调的是
| 符号 | 语法 |
|---|
| / | 转义字符 |
| () | 用于匹配括号之间的内容,通过$1,$2调用 |
rewrite index\.php$ /pages/maintain.html break;
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /msie/$1 break;
}
