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