Azure APIM Gateway截断API URL尾部斜杠 如何配置策略保留斜杠
解决APIM转发自动移除URL尾部斜杠的策略配置
直接在APIM对应API的入站策略中添加如下重写规则即可:
<inbound> <base /> <rewrite-uri template="@{ var originalUri = context.Request.OriginalUrl; var path = originalUri.Path; var query = originalUri.QueryString.HasValue ? $"?{originalUri.QueryString}" : string.Empty; return $"{path}{query}"; }" copy-unmatched-params="false" /> </inbound>
规则说明
- 直接读取用户请求APIM的原始URL路径,默认保留路径末尾的斜杠,不会触发APIM的默认路径标准化逻辑移除尾部斜杠
- 自动保留原始请求的所有查询参数,不需要额外配置正则匹配规则
- 把
copy-unmatched-params设为false避免查询参数重复拼接
效果验证
配置完成后,两个示例的转发结果完全符合预期:
- 原始请求
https://api.domain.com/getdata/,转发到后端的URL为https://mybackendservice.domain.com/getdata/ - 原始请求
https://api.domain.com/getdata/?q=1&r=2,转发到后端的URL为https://mybackendservice.domain.com/getdata/?q=1&r=2
注意事项
该重写规则需要放在入站策略的最顶部,避免其他路径处理规则先执行修改了原始路径结构。
内容的提问来源于stack exchange,提问作者Karim
相关产品推荐
相关产品推荐

