如何使用Azure Front Door通过路径通配符实现可靠流量路由与URL重定向
Azure Front Door 基于路径的通配符路由与重定向实现方案
结论
完全可以通过Front Door的路由规则+规则集组合可靠实现需求,之前的配置失效问题源于路由匹配逻辑、动作选择错误(用反向代理而非重定向)以及路径提取方式不当。
正确配置步骤
1. 主应用路由规则(优先级最低)
创建优先级为2的路由规则(数值越大优先级越低):
- 关联域:
domain.com - 匹配模式:
/* - 路由类型:
转发 - 源组:选择你的主静态Web应用源组
- 源路径:留空,保留请求原路径
2. 博客路径重定向配置(优先级更高)
推荐两种可靠实现方式,按需选择:
方式一:路由规则+规则集组合
- 先创建优先级为1的路由规则:
- 关联域:
domain.com - 匹配模式:
/blog/*(匹配所有/blog/开头的子路径) - 路由类型:
转发(仅用于触发规则集,源组可任选一个已存在的)
- 关联域:
- 创建规则集并关联到这条路由:
- 添加URL重定向规则:
- 开启「高级重定向」,设置正则匹配模式为
^/blog/(.*) - 动作类型:选
301永久重定向或302临时重定向 - 目标协议:和原请求一致或固定为HTTPS
- 目标主机:
blog.domain.com - 目标路径:
/{R:1}({R:1}会提取/blog/之后的所有内容)
- 开启「高级重定向」,设置正则匹配模式为
- 添加URL重定向规则:
方式二:纯规则集实现
- 保留主路由规则(优先级2,匹配
/*) - 创建规则集并关联到主路由:
- 添加两条子规则,分别处理
/blog和/blog/*:- 子规则1(匹配
/blog):- 条件:路径正则匹配
^/blog$ - 动作:URL重定向,目标主机
blog.domain.com,目标路径/
- 条件:路径正则匹配
- 子规则2(匹配
/blog/*):- 条件:路径正则匹配
^/blog/(.*)$ - 动作:URL重定向,目标主机
blog.domain.com,目标路径/{R:1}
- 条件:路径正则匹配
- 统一设置重定向状态码和协议
- 子规则1(匹配
- 添加两条子规则,分别处理
解决之前的失效问题
domain.com/blog无法跳转:之前的/blog/*匹配模式仅覆盖带斜杠的子路径,用正则^/blog(/.*)?$可同时匹配/blog和/blog/*两种场景。- 部分路径失效:之前用路由到源组的方式是反向代理(URL不会变化),而非浏览器可见的重定向,改用规则集的「URL重定向」动作才能让地址栏跳转。
- 路径提取问题:通过正则捕获组
{R:n}可精准提取/blog/后的子路径,解决之前无法按需截取路径的问题。
内容的提问来源于stack exchange,提问作者ashawz
相关产品推荐
相关产品推荐

