我们有 2 个应用程序服务:foo.azurewebsites.net和bar.azurewebsites.net 并为两个站点配置了源组。我们希望前门进行基于路径的路由:即:
myfd.z01.azurefd.net/foo -> foo.azurewebsites.net
myfd.z01.azurefd.net/bar -> bar.azurewebsites.net
Run Code Online (Sandbox Code Playgroud)
Patterns to match我们可以将其配置为分别在路由 as/foo/*和上使用/bar/*。这按预期工作。
接下来,我们要重写 URL,以便我们不会将初始值/foo或/bar路径发送到 Web 应用程序。换句话说,当前设置会产生以下结果:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/foo/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/bar/def
Run Code Online (Sandbox Code Playgroud)
我们想要的是:
myfd.z01.azurefd.net/foo/abc -> foo.azurewebsites.net/abc
myfd.z01.azurefd.net/bar/def -> bar.azurewebsites.net/def
Run Code Online (Sandbox Code Playgroud)
所以我们设置一个重写URL规则如下:
| 环境 | 价值 |
|---|---|
| 行动 | 网址重写 |
| 源模式 | /foo/ |
| 目的地 | / |
| 保留不匹配的路径 | Yes |
然而,这似乎不起作用。在AzureDiagnostics日志中我们可以看到规则正在触发,但 URL 没有被重写 - 它仍然包含/foo/. 我们还缺少什么吗?