提问人:codetuner 提问时间:3/16/2016 更新时间:3/16/2016 访问量:1540
URLRewrite “重定向”规则有效,但“重写”规则失败 (404)
URLRewrite "Redirect" rule works, but "Rewrite" rule fails (404)
问:
我有以下重写规则:
<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),安装了“IIS URL 重写模块 2,...
重写规则有什么问题?
答:
5赞
milope
3/16/2016
#1
既然您提到您正在设置内部服务器的反向代理。如果 URL 重写目标位于执行重写的服务器之外,则需要安装应用程序请求路由以启用代理功能。安装应用程序请求路由 (ARR) 后,您需要转到其代理设置并检查启用代理功能。可以在此处找到有关此设置的完整博客。如果已经执行了此操作,我建议在反向代理和目标服务器(如果目标服务器是 IIS)上使用失败请求跟踪,以便更好地了解 HTTP 404 响应的来源。
评论
0赞
Johann
8/31/2016
谢谢!就我而言,URL 重写规则是正确的,并且安装了 ARR,但 ARR 未显示在 IIS 中。卸载并重新安装 ARR 已修复 (iis.net/downloads/microsoft/application-request-routing)
评论