我在使用以下语法时遇到问题:
<rewriter>
<!-- This does NOTHING -->
<if url="whywontthiswork\.aspx" rewrite="/default.aspx" />
<!-- This redirects correctly -->
<redirect url="whywontthiswork\.aspx" to="/default.aspx" />
</rewriter>
如上所述,无论我尝试什么,第一条规则都无效。该页面请求的响应上的X-Powered-By字段始终显示为“ASP.NET”。但是,第二个重写规则始终有效,并且该请求的响应上的X-Powered-By字段是“ASP.NET,UrlRewriter.NET 2.0”。
我认为IIS已正确配置,因为它正在为<redirect />
正确处理请求。问题是我没有任何想法为什么第一次重写规则不会执行。
我试图在UrlRewriter.NET上搜索文档,但此时,它似乎是他们的网站离线或不再使用。有什么想法吗?
答案 0 :(得分:0)
好的,很抱歉回答我自己的问题,但我在发布后立即想出了解决方案。我很可能拥有与创建这些规则时使用的UrlRewriter.NET不同的版本。将语法更新为以下内容,解决了问题:
<if url="whywontthiswork\.aspx">
<rewrite url="whywontthiswork\.aspx" to="/default.aspx" />
</if>
修改强>
我能够确认我们的生产环境使用的是Intelligencia.UrlRewriter 1.7.0版,但我使用的程序集是2.0。