【发布时间】:2020-02-19 12:44:57
【问题描述】:
我想使用 Azure 应用程序网关将我的 Azure Web 应用服务中的 URL 路径重定向到另一个 URL 路径。如何避免重定向包含原始路径?
我在 Azure 中有一个 ASP.NET 框架 4.7 Web App 服务,有两个 API:
https://myapp.azurewebsites.net/api/values/{int} -> respons 200
https://myapp.azurewebsites.net/api/forbidden -> respons 403
然后我有一个应用程序网关
http://myapp.northeurope.cloudapp.azure.com
基于路径的路由
http://myapp.northeurope.cloudapp.azure.com -> https://myapp.azurewebsites.net (works ok)
并且永久重定向到“外部站点”
/api/values/* -> http://myapp.northeurope.cloudapp.azure.com/api/forbidden
现在,当我转到路径 /api/values/1 时,它会将我错误地重定向到 /api/forbidden/api/values/1
http://myapp.northeurope.cloudapp.azure.com/api/values/1 -> http://myapp.northeurope.cloudapp.azure.com/api/forbidden/api/values/1 !!!
表示重定向包括原始路径! “包含路径”在配置中未选中并显示为灰色。
我只想限制从公共 Internet 访问某些 API 路径。
【问题讨论】:
-
可能因为优先级而发生?
-
嗯……也许吧。问题是如何避免它。我可以解决这个问题,只需部署另一个只响应“403 禁止”的 Web 服务,然后将其作为池添加到网关。但是对于这么简单的要求来说,这看起来有点过头了。
-
改变规则的顺序?
-
只有一个基于路径的规则,从网关重定向到池,并为 /api/values/* 添加了 URL 路径例外。由于只有一个侦听器,因此无法添加更多规则。并且同一端口(80)上只能有一个侦听器。
标签: azure azure-web-app-service