如何为Azure CDN标准规则剥离HTTP请求URL路径并重写或重定向URL
Azure Microsoft CDN(标准规则)跨域名路径转发配置解答
问题1:是否可直接提取PATH-1实现需求?
可以实现,你之前配置失败的核心原因是Azure CDN的URL Rewrite/Redirect规则的源模式仅匹配请求的路径部分(域名之后的内容),不会匹配请求域名本身,你此前填写的源模式/cdn-domain.com/(.*)无法匹配到实际请求路径/PATH-1,导致规则无法正确捕获路径参数,最终出现SUBPATH缺失的问题。
具体配置方案
你可以根据需要选择URL重定向(用户端地址栏可见变更)或URL重写(后端转发,地址栏不变)两种方案:
方案1:URL重定向(3xx跳转)
适用于需要将用户请求直接引导到新域名的场景:
- 匹配条件:选择
请求URL->路径->任意(若需限制指定路径可调整匹配规则) - 操作选择
URL 重定向:- 重定向类型:按需选择
301(永久)或302(临时) - 协议:建议选择
匹配传入请求或固定为HTTPS - 主机名:填写你的目标域名
newdomain.com - 路径配置:选择
替换,填写/SUBPATH/{R:1} - 查询字符串:按需选择
保留或自定义 - 源模式填写
/(.*),用于捕获完整路径作为{R:1}参数
- 重定向类型:按需选择
方案2:URL重写(后端透明转发)
适用于用户地址栏不变,仅CDN后端将请求转发到新域名路径的场景:
注意:使用该方案需先将CDN的源站配置为
newdomain.com,URL重写规则仅修改请求路径,不会修改请求指向的源站地址。
- 匹配条件:同重定向方案配置
- 操作选择
URL 重写:- 源模式填写
/(.*) - 目标路径填写
/SUBPATH/{R:1} - 保留未匹配路径:保持关闭即可,已通过正则捕获全路径参数
- 源模式填写
「保留未匹配路径」选项的简化配置
如果你不想写正则捕获组,可以用该选项实现相同效果,不需要配置正则分组:
- 源模式填写
/ - 目标路径填写
/SUBPATH/ - 勾选
保留未匹配路径
此时未被源模式匹配的路径部分(即你的PATH-1)会自动追加到目标路径后,最终生成/SUBPATH/PATH-1的路径。
内容的提问来源于stack exchange,提问作者Sergio Solorzano
相关产品推荐
相关产品推荐

