假设我有一个 Azure 应用服务 -
abc.com
现在我有了另一个 Azure 应用服务 -
hub.com
我想将
abc.com/hub
重新路由到 hub.com
,但将 URL 保留为 -
abc.com/hub
目前我已经设置了两个起始组和每个组的路线。还有一个使用 URL 重写的规则集。
正在发生的事情 -
abc.com/hub
我明白 - hub.com/hub
出现此问题的原因是当前的重写规则导致 URL 重复
/hub
,因此您不会将 URL 保留为 abc.com/hub
,而是会得到 hub.com/hub
。要解决此问题,您应该将源模式更改为 /hub/*
并将目标设置为 /
。这将防止最终 URL 中出现重复的 /hub
。因此,当用户访问 abc.com/hub
时,请求将被转发到 hub.com
,但 URL 仍会显示为 abc.com/hub
。
此外,请确保“保留不匹配的路径”选项设置为“是”。这有助于在不改变路径的情况下传递 URL 的任何其他部分。
确保规则链接到 abc-origin(对于
abc.com
)而不是 hub-origin。这样,任何对 abc.com/hub
的请求都将路由到后端 hub.com
应用程序,但向用户显示的 URL 仍将是 abc.com/hub
。
如果问题仍然存在,您可以检查 Azure 前门日志以准确查看请求转发到的位置,这可能有助于解决任何遗留问题。
对于 CSS 和功能不起作用的问题,可能是 CSS 等静态文件的路径在重写过程中被破坏。检查以确保静态资产的请求得到正确转发,而无需更改其路径。您可以测试应用程序是否直接在
hub.com
上运行,以确保一切正常。
通过调整这些设置,原始 URL
abc.com/hub
应对用户保持可见,同时将请求正确路由到 hub.com
后端。