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



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

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

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

创建重写地图.config

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

创建重写规则.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 小巧干净
  • 您可以将复杂的重定向/重写与条件放在rewriteRules.config中
  • 您可以将简单的重定向(重定向pathA重定向到pathB(作为键值对直接放入rewriteMaps.config中

最新更新