You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure应用网关路由路径并避免重定向携带原路径

解决Azure应用网关重定向时携带原路径的问题

我之前处理过一模一样的场景,你遇到的问题核心在于Azure应用网关重定向规则的配置逻辑限制,尤其是Include path选项灰色不可编辑的情况,咱们一步步来解决:

问题根因拆解

你设置的重定向目标是完整绝对URL(http://myapp.northeurope.cloudapp.azure.com/api/forbidden),这种情况下应用网关会默认把原请求的路径拼接到目标URL后面,而且Include path选项会被置灰——这是平台的默认行为,因为绝对URL模式下,系统认为你可能需要保留路径信息,但这刚好和你的需求相反。

分步解决办法

方法1:改用相对路径作为重定向目标

这是最直接的修复方式,调整后Include path选项就会解锁:

  • 登录Azure门户,进入你的应用网关,找到「规则」里的重定向规则
  • 把重定向目标从完整URL改成相对路径:/api/forbidden
  • 此时Include path选项会变成可编辑状态,直接取消勾选
  • 保持重定向类型为「永久重定向(301)」,保存配置

等配置生效后,再访问http://myapp.northeurope.cloudapp.azure.com/api/values/1,就会直接跳转到http://myapp.northeurope.cloudapp.azure.com/api/forbidden,不会再带原路径尾巴了。

方法2:用URL重写规则替代默认重定向(适合必须用绝对URL的场景)

如果业务上必须指定完整绝对URL作为目标,就换用应用网关的URL重写规则来实现:

  • 在应用网关的「规则」里新建一个URL重写规则
  • 匹配条件设置为路径等于/api/values/*
  • 动作选择「重定向」,目标URL填你需要的完整地址
  • 在重定向设置里,找到「包含路径」的选项,明确设置为「否」
  • 保存规则后生效,同样能实现不带原路径的重定向

更贴合需求的优化方案:直接拒绝访问

既然你的最终目的是限制/api/values/*的公网访问,其实没必要做重定向,直接返回403更合理:

  • 在应用网关里新建一个路由规则,路径匹配/api/values/*
  • 后端池选择「无」,然后配置拒绝响应,状态码设为403
  • 这样用户访问该路径时,直接收到403禁止访问的响应,既满足需求又更高效

内容的提问来源于stack exchange,提问作者Michael Chudinov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:23:13