【发布时间】:2023-03-08 03:12:02
【问题描述】:
我在 ASP.Net 站点上有以下重写规则,以使 IIS 充当反向代理:
<rewrite>
<rules>
<rule name="AppReverseProxy" enabled="true" stopProcessing="true">
<match url="([d|u|c]/.*)" />
<action type="Rewrite" url="http://127.0.0.1:12949/{R:1}" />
</rule>
</rules>
</rewrite>
所以基本上,domain.com/u/* domain.com/d/* 或 domain.com/c/* 路径上的任何内容都会被转发到本地服务器。这很好用,而且通常我到现在都没有问题。
我让本地服务器返回一个301 Permanent Redirect,其中一个Location 标头设置为一个子域,例如:subdomain.domain.com/somePath。这个子域指向一个完全不同的服务器。
问题在于 IIS 正在重写 Location 标头以看起来像 domain.com/somePath,它正在完全删除子域。我通过访问domain.com:12949 的站点确认这是一个IIS 问题,它正确地重定向到子域。如何阻止 IIS 从本地服务器重写 Location 标头?
【问题讨论】:
标签: c# asp.net iis url-rewriting iis-7