【发布时间】:2017-12-09 15:22:13
【问题描述】:
一些网站更改导致包含 400 多个 URL 的重定向列表。维护这些的最佳方法是什么?一个一个地添加它们不是一个好的选择。将它们添加到 web-config 会导致文件增长到系统无法读取的程度。
有没有办法在 IIS 8 中维护一个带有重定向的单独文件?
【问题讨论】:
标签: redirect iis web-config iis-8 windows-server
一些网站更改导致包含 400 多个 URL 的重定向列表。维护这些的最佳方法是什么?一个一个地添加它们不是一个好的选择。将它们添加到 web-config 会导致文件增长到系统无法读取的程度。
有没有办法在 IIS 8 中维护一个带有重定向的单独文件?
【问题讨论】:
标签: redirect iis web-config iis-8 windows-server
根据我的经验,最好的方法是使用重写地图:
创建 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>
这种结构的好处
pathA 重定向到 pathB)直接作为键值对放入 rewriteMaps.config【讨论】:
<rewrite>中的条目一样吗?