Nginx笔记 - rewrite

136 阅读1分钟
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;
}
  • rewrite的flag