我有一个托管在azure的网站。我想调试那里发生的某个场景(在测试环境中),所以我希望所有来到该URL的请求,即https://test.com被重定向到我的本地IP(在我移植并处理我自己的计算机上的所有内容之后。我有添加了几乎可以工作的规则,这就是它的样子:
<rule name="Reverse" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="52.52.52.52/api/..." redirectType="Found"/>
</rule>
发生的情况是,当请求到达服务器时,它会将当前主机URL添加到IP,它看起来像这样:
test.com/52.52.52.52
如何配置不添加主机名?
自从我使用重写规则以来已经有一段时间了,所以这个答案可能不是确定的。但是“Found”'redirectType'将导致对客户端(浏览器)的302响应,并将包含带有完整URL的“Location:”标头。由于您尚未在URL中提供主机,因此它将使用请求中的主机名。
你需要将协议放在动作“url =”中,如'url =“https://52.52.52.52/api / ...'。
如果您需要它同时适用于HTTP和HTTPS,您可以从{REQUEST_URI}解析协议或创建重写映射并使用{HTTPS}服务器变量。 Details are here.