简单总结:nginx 的 rewrite 指令
warning:
这篇文章距离上次修改已过1290天,其中的内容可能已经有所变动。
NGINX REWRITE 指令:
语法:
rewrite regex replacement [flag];
作用:
如果一个 uri 匹配指定的正则表达式 regex , uri 就按照 replacement 重写。 rewrite 按配置文件中出现的顺序执行。 flags 标志位的作用是对接下来相同rewrite指令该如何处理。如果 replacement 以 http:// 或 https:// 开始,将不再继续处理,这个重定向将返回给客户端。
flag(参数)
last:停止处理后续rewrite指令集,然后对当前重写的新uri在rewrite指令集上重新查找。break: 停止处理后续rewrite指令集,并不在重新查找,但是当前location内剩余非rewrite语句和location外的非 rewrite 语句可以执行。redirect: 如果replacement不是以http://或https://开始,返回 302 临时重定向。permant: 返回 301 永久重定向。
执行顺序:
1.首先执行 server 快的 rewrite 的指令. (这里的 server 块指的是,大括号包围的区域)
2.执行选定的 location 中的 rewrite 指令.
注意:如果 `rewrite` 循环超过10次,则返回 500 Internal Server Error 错误。