简单总结:nginx 的 rewrite 指令
warning:
这篇文章距离上次修改已过953天,其中的内容可能已经有所变动。
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 错误。