Skip to content

CustomAction: URI Rewrite

AlexaZhou edited this page Mar 5, 2016 · 3 revisions

功能介绍

URI Rewrite 可以将请求的URI进行内部改写,而用户浏览器地址栏显示的地址并不会发生变化

背景知识

Matcher

配置说明

可以定义多条规则,每条规则包含以下参数

  • Enable
  • Matcher
  • RegEx
  • Redirect to

执行过程

寻找规则

每收到一个请求,VeryNginx将按照从上到下(序号递增)的顺序,取每一条规则的 Matcher 进行匹配测试,当找到第一个符合的Matcher时,即由这一条规则进行处理,停止后续匹配

应用规则

当 Regex 项为空时, 请求将被重定向到Redirect to 项填写的地址。 当 Regex 项不为空时,新地址由gsub算法生成:

new_address = gsub( uri, re,redirect_to )

其中 re 为规则中定义的Regex,redirect_to 为规则中定义的 Redirect to 项目

示例1 :

VeryNginx默认访问路径是 /veryngingx/dashboard/index.html, 我们想缩短到 /vn/index.html, 可以作以下配置:

Matcher: URI ≈ ^/vn

Regex: ^/vn/(.*)

Redirect to: /verynginx/dashboard/$1

添加规则之后,通过 /vn/index.html 即可访问配置面板

注意事项

  • Redirect to 项只可以是 / 开头的地址
  • 重定向时url后的查询字符串参数将会被保留
  • 注意规则的顺序,防止一个严格的Matcher被排名更前的宽松Matcher覆盖,导致规则不起作用
Clone this wiki locally