IIS7重写模块规则的备用Web.Config

时间:2009-05-28 22:11:27

标签: iis-7 module rewrite

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

3 个答案:

答案 0 :(得分:3)

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

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

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

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

您必须使用整个rewriteMap s 部分:根据此论坛帖子,您无法使用rewriteMap执行此操作:http://forums.iis.net/t/1154113.aspx

答案 1 :(得分: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未提及重写元素,我无法通过谷歌找到MSDN页面。

答案 2 :(得分:0)

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

我的猜测是<rules />元素是作为具有configSource属性的SectionInformation实现的,而<rewrite />元素是ConfigurationSection则不是。{/ p >