使用 IIS 8 维护重定向 URL 列表的最佳实践?

Best practice for maintaining lists of redirect urls with IIS 8?

一些网站更改导致重定向列表包含 400 多个 URL。维护这些的最佳方法是什么?一个一个地添加它们不是一个好的选择。将它们添加到 web-config 会导致文件增长到系统无法读取的程度。

有没有办法在 IIS 8 中维护一个带有重定向的单独文件?

根据我的经验,最好的方法是使用重写映射:

创建rewriteMaps.config

<rewriteMaps>
    <rewriteMap name="Redirects">
        <add key="/test.aspx" value="/test2.aspx" />
        <add key="/aboutus.aspx" value="/about" />
    </rewriteMap>
</rewriteMaps>

创建rewriteRules.config

<rules>
    <rule name="Rule for Redirects">
        <match url=".*" />
        <conditions>
        <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
        </conditions>
        <action type="Redirect" url="{C:1}" appendQueryString="false" />
    </rule>  
</rules>

在web.config中使用configSource属性

<rewrite>
    <rewriteMaps configSource="rewriteMaps.config" />
    <rules configSource="rewriteRules.config" />
</rewrite>

这种结构的好处

  • Web.config小而干净
  • 你可以把complexredirects/rewrites和条件放在rewriteRules.config
  • 您可以将简单的重定向(将 pathA 重定向到 pathB)作为键值对
  • 直接放入 rewriteMaps.config