cae*_*say 1 c# asp.net iis iis-7 url-rewriting
我在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>
Run Code Online (Sandbox Code Playgroud)
因此,基本上,位于domain.com/u/* domain.com/d/*或路径上的所有内容都domain.com/c/*将转发到本地服务器。效果很好,通常来说,到目前为止我没有任何问题。
我在本地服务器返回一个301 Permanent Redirect带有Location标题设置为像一个子域:subdomain.domain.com/somePath。该子域指向完全不同的服务器。
问题在于IIS正在重写Location标头的样子domain.com/somePath,它完全删除了子域。我通过访问站点确认了它的IIS问题,domain.com:12949并将其正确重定向到了子域。如何阻止IIS从Location本地服务器重写标头?
网址重写可以重写响应中的标头,但默认情况下不应这样做。由于未在网站的重写规则中配置此功能,因此很有可能在服务器级别启用了“应用程序请求路由”模块。
在IIS管理器中,选择当前服务器(而不是网站),打开Application Request Routing,然后在右侧列上会有一个选项Server Proxy Settings。在那里,您将看到“在响应头中反向重写主机”选项。如果已选中-取消选中它,则您的问题应得到解决。
在此URL上有一些ARR模块窗口的屏幕快照供参考:http : //blogs.msdn.com/b/chiranth/archive/2014/08/03/application-request-routing-part-2-reverse-proxy并解决arr-urlrewrite-issues.aspx问题
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |