【发布时间】:2021-07-28 17:27:46
【问题描述】:
我们有 2 个应用服务:foo.azurewebsites.net 和 bar.azurewebsites.net,并为这两个站点配置了源组。我们希望前门做基于路径的路由:即:
myfd.z01.azurefd.net/foo -> foo.azurewebsites.net
myfd.z01.azurefd.net/bar -> bar.azurewebsites.net
我们可以将其配置为在路由上使用Patterns to match 分别为/foo/* 和/bar/*。这按预期工作。
接下来,我们要重写 URL,这样我们就不会收到发送到 Web 应用程序的初始 /foo 或 /bar 路径。换句话说,当前设置会产生以下结果:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/foo/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/bar/def
我们想要的是:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/def
所以我们设置了一个重写 URL 规则如下:
| Setting | Value |
|---|---|
| Action | URL rewrite |
| Source pattern | /foo/ |
| Destination | / |
| Preserve unmatched path | Yes |
但是,这似乎不起作用。在 AzureDiagnostics 日志中,我们可以看到规则正在触发,但 URL 没有被重写 - 它仍然包含 /foo/。我们缺少什么吗?
【问题讨论】:
-
我的回答对你有帮助吗?如果没有,对我来说什么不起作用会很有趣,所以我可以更新我的答案。