3

我正在使用iis urlrewriting静态和动态页面重建网站。重定向都运行良好。重写模块运行良好。

由于站点结构正在发生变化,我需要能够将“旧”失效的 url 重定向到新页面。因此,例如,www.sitename.com /research.asp需要重定向到www.sitename.com/news

我已按照说明使用重写映射设置规则,并将规则放置在我的 webconfig 文件顶部附近(就在 CanonicalHostNameRule 下方)。但无论我在规则中尝试过什么排列,我都能让它发挥作用。重定向不会发生 - 我只是为(不存在的).asp 页面获得 404。这张地图似乎被完全忽略了。只是重申一下,我所有的其他规则都运行良好。

我试过关闭所有其他规则,只使用这个规则,但没有运气。同样,我已经在这个论坛和其他论坛上搜索了建议(使用 REQUEST_URI 而不是文件名、重新启动 IIS、回收应用程序池等),但似乎没有任何效果。“重定向” url="{C:1}" 只是让我回到我试图重定向的旧 asp 页面,如果这有意义的话。FailedRequestTracing 中似乎也没有任何帮助。

我在这里遗漏了一些非常明显的东西吗?

规则:

<rule name="Redirect Rule" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{StaticRedirects:{REQUEST_FILENAME}}" pattern="(.+)" />
    </conditions>
    <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>

地图:

<rewriteMaps>
    <rewriteMap name="StaticRedirects">
        <add key="research.asp" value="news" />
        <add key="blog.asp" value="news" />
        <add key="mentors.asp" value="interviews" />
        <add key="regulars.asp" value="opinion" />
    </rewriteMap>
</rewriteMaps>

NB - 一旦它真正起作用,还有很多其他的静态重定向可以添加到这里,这就是我想使用地图的原因。

4

0 回答 0