【问题标题】:Best practice for maintaining lists of redirect urls with IIS 8?使用 IIS 8 维护重定向 url 列表的最佳实践?
【发布时间】:2017-12-09 15:22:13
【问题描述】:

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

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

【问题讨论】:

    标签: redirect iis web-config iis-8 windows-server


    【解决方案1】:

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

    创建 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 小而干净
    • 您可以在 rewriteRules.config 中放置 complex 带有条件的重定向/重写
    • 您可以将简单的重定向(将 pathA 重定向到 pathB)直接作为键值对放入 rewriteMaps.config

    【讨论】:

    • 谢谢你,维克多!如果 rewriteMaps.config 变得大于 256kb,webconfig 是否允许多个 rewritemaps 条目?还有,执行顺序和&lt;rewrite&gt;中的条目一样吗?
    • 不幸的是 - 没有。您只能使用一个重写映射文件。执行顺序应该一致
    • 还有一个自定义 URLRewrite 提供程序,FileMapProvider,它使用纯分隔文本文件。不幸的是,它在我的系统上不起作用,可能已经过时了:
    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2023-03-12
    • 2017-12-22
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多