【问题标题】:Alternate Web.Config for IIS7 Rewrite Module RulesIIS7 重写模块规则的备用 Web.Config
【发布时间】:2010-10-29 17:41:04
【问题描述】:

是否可以将 IIS7 重写模块创建的规则从根 web 配置移动到它自己的 web 配置文件中,就像使用 appsettings 一样,如果可以,如何?

【问题讨论】:

  • 你能做到吗?我还是很难过……

标签: iis-7 module rewrite


【解决方案1】:

我找到了configuration documentation,但它似乎没有涵盖 configSource 属性的使用。

我的猜测是 <rules /> 元素被实现为具有 configSource 属性的 SectionInformation 而 <rewrite /> 元素是 ConfigurationSection 而没有。

【讨论】:

    【解决方案2】:

    这在 web.config 中对我有用:

    <system.webServer>
        <rewrite>
          <rules configSource="web.rules.config" />
        </rewrite>
    </system.webServer>
    

    一个很酷的事情是IIS Configuration Editor 在您编辑规则并将更改写回外部文件时尊重此外部文件。

    如果你输入:

    <system.webServer>
        <rewrite configSource="web.rules.config" />
    </system.webServer>
    

    它不起作用,你得到 HTTP 错误 500.19 内部服务器错误:

    Error Code:   0x8007000d
    Config Error: Unrecognized attribute 'configSource'
    

    任何人都可以指向rewrite 元素和configSource 属性上的权威MSDN 帮助页面吗? MSDN article on system.webServer 没有提到 rewrite 元素,我无法通过 google 找到 MSDN 页面。

    【讨论】:

      【解决方案3】:

      我似乎无法让它工作,但它的描述方式是:

      <rewrite>
         <rewriteMaps configSource="external.config">
         </rewriteMaps>
      </rewrite>
      

      然后在 external.config 文件中添加您的规则:

      <rewriteMaps>
        <rewriteMap ...
        ...
      </rewriteMaps>
      

      您必须对整个 rewriteMaps 部分执行此操作:根据此论坛帖子,您不能对 rewriteMap 执行此操作:http://forums.iis.net/t/1154113.aspx

      【讨论】:

      • 您还需要一个重写规则来获取映射。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2013-08-19
      • 2011-04-07
      相关资源
      最近更新 更多