我在IIS中定义了我想要维护的重写规则。我遇到的问题是,当这个重写背后的应用程序向其自身以外的主机返回HTTP重定向响应(303或307)时,URL重写模块正在更改响应的Location
标头上的主机。 (我已确认URL重写是错误的,因为直接访问站点时未观察到此行为)。 IIS正在执行此操作,即使我不已定义任何出站规则。如何让IIS重写传入的请求,但是阻止它对传出的响应执行此未配置和无意的处理?
<rule name="ServiceName Rewrite">
<match url="^(ServiceName/)?(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^ServiceName([.]company[.]com)?$" />
</conditions>
<action type="Rewrite" url="http://generic.company.com/ServiceName/{R:2}" />
</rule>
修改
为了澄清,我的网络应用程序正在返回
的回复HTTP 307
Location: http://somesite.company.com/path/to/item
并且IIS无益于将其更改为
HTTP 307
Location: http://ServiceName.company.com/path/to/item
答案 0 :(得分:3)
我的重定向也遇到了同样的问题。
对我有用的是: