Nginx Rewrite介绍


Rewrite 跳转实现是通过 ngx_http_rewrite_module 模块来进行的

  • Nginx:是通过 ngx_http_rewrite_module 模块支持 url 重写、支持 if 条件判断,但不支持 else,支持if单分支,但是不支持双分支判断 。

  • PCRE 支持:该模块需要PCRE 支持,应在编译 Nginx 时指定 PCRE 支持,默认已经安装。

  • 跳转:根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可以执行10次,超过后 Nginx 将返回500错误。

  • 重写模块:包含 set 指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他 location、记录做了什么等等。

注:rewrite功能就是,使用 Nginx 提供的全局变量或自己设置的变量,结合正则表达式和标志位实现URL的重写以及重定向

1、Nginx跳转需求的实现方式

  • 使用rewrite进行匹配跳转

  • 使用if匹配全局变量后跳转

  • 使用location匹配再跳转

注: rewrite放在server{},if{},location{}段中,location只对域名后边的除去传递参数外的字符串起作用。对域名或参数字符串匹配,使用if全局变量匹配;以及使用proxy_pass反向代理。

2、rewrite中常用的正则表达式元字符

文档更新时间: 2021-12-27 16:09   作者:admin