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