-
Notifications
You must be signed in to change notification settings - Fork 958
CustomAction: URI Rewrite
AlexaZhou edited this page Mar 5, 2016
·
3 revisions
URI Rewrite 可以将请求的URI进行内部改写,而用户浏览器地址栏显示的地址并不会发生变化
可以定义多条规则,每条规则包含以下参数
- 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覆盖,导致规则不起作用