nginx@rewrite
1 ngx_http_rewrite_module 模块
rewrite 包括一系列功能,这些功能是由ngx_http_rewrite_module
模块提供的
总共有 5 个指令(directive
)可用于配置
- 普通指令:
if、set、break、return
- 核心指令:
rewrite
=
2 普通指令
提示:nginx配置文件每一行的基本格式:
directive value [value2 ...];
=
# if
# if (条件匹配){ action }
配合nginx的内置变量,实现一些条件判断。。。让特定条件执行特定的 location
# set
# set $name caokunzi;
用于自定义变量
# break
# break;
作用范围:当前级别的语句块
作用效果:
1.在 server 块中,会屏蔽掉后面的 location
2.在 location 块中,停止对当前URL在当前 location 中后续的其它【重写】操作,非 rewrite 操作则不受影响
# return
# return code;
# return code [text];
# return code URL;
立即结束当前请求,并直接向客户端返回响应状态码(和指定的文本或 URL)
🟥立即放弃当前语句块中【所有其他指令】,无论指令的前后顺序
=
=
3 rewrite 指令
注意:rewrite
与其他四种指令是平级关系,都是一种directive
# 格式
rewrite regex replacement [flag];
# 表示将 regex 替换为 replacement 。。。可指定不同的 [flag] 实现不同效果
4 rewrite 指令的 flag
redirect;
# 临时重定向
# 状态码:302
permanent;
# 永久重定向
# 状态码:301
break;
# 🟥放弃当前location中后面的【其他重写指令】,不再匹配其他 location,直接返回数据
last;
# 🟥放弃当前location中的【其他重写指令】,继续匹配其他 location,直至不能再匹配,才返回数据
=
wan