URLRewrite"重定向"规则有效,但"重写"规则失败(404)

时间:2016-03-16 15:19:29

标签: iis url-rewriting proxy

我有以下重写规则:

<rule name="First Rule" patternSyntax="ECMAScript" stopProcessing="true">
  <match url="^Tracking/(.*)" ignoreCase="true" />
  <action type="Rewrite" url="http://www.example.com/" />
</rule>

这种错误,调用http://www.myserver.com/Tracking/123会返回404。

但是,如果我将操作类型更改为重定向,则规则突然正常,执行重定向:

<rule name="First Rule" patternSyntax="ECMAScript" stopProcessing="true">
  <match url="^Tracking/(.*)" ignoreCase="true" />
  <action type="Redirect" url="http://www.example.com/" />
</rule>

但我需要重写规则,因为我需要一个内部服务器的反向代理。

我正在使用Windows 2008R2服务器(IIS 7.5),拥有&#34; IIS URL重写模块2&#34;安装,...

重写规则有什么问题?

1 个答案:

答案 0 :(得分:5)

由于您提到您正在为内部服务器设置反向代理。如果URL重写目标位于执行重写的服务器之外,则需要安装应用程序请求路由以启用代理功能。安装应用程序请求路由(ARR)后,您需要转到其代理设置并检查启用代理功能。可以找到有关此设置的完整博客here。如果已经执行了此操作,我建议在反向代理服务器和目标服务器上使用失败的请求跟踪(如果目标服务器是IIS),以便更好地了解HTTP 404响应的来源。