ASP 重定向基本 URL 被 IIS 重写

ASP 重定向基本 URL 被 IIS 重写

我正在尝试调试我认为的 IIS 重写问题。

我在一台 IIS 服务器上托管多个网站,该服务器在后台充当 Kestrel 主机的代理。一切都运行正常,我没有遇到任何问题。

我遇到的问题是,当我的任何网站return Redirect("http://www.someotherurl.com/")通过 ASP.NET MVC 执行操作时,基本 URL 总是被重写为我的网站的 URL - 即使该 URL 完全位于我的 URL 之外,情况也是如此。

如果我单独运行该站点,而不是在 IIS 代理内运行,则重定向将按我预期的方式工作,因此我知道这是 IIS 内的事情。

至于规则,我现在根本没有出站规则。对于入站规则,我有(针对我的每个网站):

  1. HTTP 到 HTTPS 重定向规则。
  2. 重写规则,获取 URL 并将 URL 重写为http://127.0.0.1:端口以便自托管服务能够适当地处理请求。每个站点都有单独的规则。

我现在非常困惑,因为我看不出有任何其他方法可以让重定向不转到我提供的实际 URL,但 IIS 似乎在做一些神秘的事情。

更多信息

  1. 请求来自 www.example.net/Documents。
  2. 规则根据传入的 URL 将 URL 重写为 127.0.0.1:port/Documents。
  3. 端点处理请求。
  4. 已发送重定向响应。
  5. 无论如何,基本 URL 都会转换回 www.example.com - 即使重定向到不同的域。我相信这就是问题所在。似乎 IIS 默认这样做。但我不确定。

答案1

找到了答案并想在这里发布以防其他人遇到这个问题。

https://stackoverflow.com/a/23600821/132528

是否涉及应用程序请求路由?查看 IIS -> 计算机或站点 -> 应用程序请求路由缓存 -> 服务器代理设置,然后取消选中“在响应标头中反向重写主机”复选框。如果您在计算机级别执行此操作,它将对所有站点生效。如果您在特定站点上执行此操作,它将仅对该站点生效,而框上的其他站点将不受影响。

相关内容