问题标签 [hostheaders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
303 浏览

url-rewriting - 如何使用 Azure 应用程序网关的重写规则功能重写网站的主机名?

我有一个网站叫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. 我已从应用程序网关的访问日志中提取了请求,请求显示以下字段:

这似乎是原始主机和重写主机的正确值。

我缺少什么来完成这项工作?

0 投票
0 回答
13 浏览

post - 如何从邮递员传递多个主机头

我正在尝试在 postman 上为 post http 请求添加多个主机标头,但出现类似Error: hostHeader.startsWith is not a function 的错误。如果我传递单个标头它正在工作,但是如果我再传递一个标头它会抛出错误无法发送带有上述消息的请求。是否有任何配置我需要允许多个主机头