我有一个网站叫oldcompany.com
. 我们的产品名称改变了,我想在网站前面使用Azure应用网关,以便重写URL,即使用newcompany.com
主机名访问网站。
Azure 应用程序网关有一个功能,称为重写规则,允许修改请求和响应标头,记录在这里:https ://github.com/MicrosoftDocs/azure-docs/blob/master/articles/application-gateway/rewrite -http-headers-url.md#rewrite-http-headers-and-url-with-application-gateway。我想使用此功能的原因是它允许指定复杂的条件来重写标题。因此,我不想在 HTTP 设置上使用Override with new host name开关,而是覆盖Host
通过应用程序网关的所有请求的标头。
我已经定义:
- 侦听 HTTPS、端口 443、主机名的侦听器
newcompany.com
- 后端池指向
oldcompany.com
- 将侦听器绑定到后端池的规则
仅使用此配置,访问https://newcompany.com
会导致 Azure 应用程序网关的 502 错误页面,这是预期的,因为Host
请求中的标头仍然是newcompany.com
,它不是服务器识别的虚拟主机(仅服务于 的请求oldcompany.com
)。
因此,为了设置Host
标头,我配置了一个与我的路由规则关联的重写规则集。此规则集有一条规则,将请求的Host
标头更改为oldcompany.com
.
但是,在访问https://newcompany.com
. 我已从应用程序网关的访问日志中提取了请求,请求显示以下字段:
host_s: oldcompany.com
originalHost_s: newcompany.com
httpStatus_d: 502
这似乎是原始主机和重写主机的正确值。
我缺少什么来完成这项工作?