0

我在使以下语法正常工作时遇到问题:

<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上搜索文档,但此时,他们的网站似乎已脱机或不再提供服务。有任何想法吗?

4

1 回答 1

0

好的,很抱歉回答我自己的问题,但我在发布后不久就找到了解决方案。我很可能拥有与创建这些规则时使用的版本不同的 UrlRewriter.NET 版本。将语法更新为以下内容,解决了问题:

<if url="whywontthiswork\.aspx">
    <rewrite url="whywontthiswork\.aspx" to="/default.aspx" />
</if>

编辑:
我能够确认我们的生产环境使用的是 Intelligencia.UrlRewriter 版本 1.7.0,但我使用的程序集是 2.0。

于 2009-12-08T16:08:20.790 回答