Iis 7 是否基于每个站点禁用IIS7 URL重写继承?

Iis 7 是否基于每个站点禁用IIS7 URL重写继承?,iis-7,url-rewriting,Iis 7,Url Rewriting,我有很多全局IIS7 URL重写规则,默认情况下它们适用于所有站点。有几个站点我想禁用所有规则的重写继承。我该怎么做?我不高兴地尝试了以下方法: <rewrite> <rules> <clear /> </rules> </rewrite> 对不起,这无法完成: 全局重写规则用于定义服务器范围的URL重写 逻辑。这些规则在applicationHost.config文件中定义 并且它们不能在任何较低的配置上被覆盖或禁用

我有很多全局IIS7 URL重写规则,默认情况下它们适用于所有站点。有几个站点我想禁用所有规则的重写继承。我该怎么做?我不高兴地尝试了以下方法:

 <rewrite>
<rules>
    <clear />
</rules>
  </rewrite>

对不起,这无法完成:

全局重写规则用于定义服务器范围的URL重写 逻辑。这些规则在applicationHost.config文件中定义 并且它们不能在任何较低的配置上被覆盖或禁用 级别,例如站点或虚拟目录。全球规则总是 在绝对URL路径上操作(即,请求的URI没有 服务器名称)

全局规则集总是先求值,然后再分发 规则集将使用global生成的URL字符串进行计算 规则集


如果您能够将所需的功能移出全局规则并移动到网站的web.config中,您可以在每个规则上添加一个条件,根据该网站是否存在本地文件选择加入或退出每个规则。这将允许您部署一组通用的代码和配置,但需要进行本地/每个站点的自定义

选择加入规则示例:

        <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll">
                <add input="{HTTPS}" pattern="off" />
                <!-- Opt-in to rule via presense of a local file -->
                <add input="{DOCUMENT_ROOT}/Local/rewrite-rule-enable-https.txt" matchType="IsFile" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>

注意:不部署本地文件夹,而是用于存储每个站点的文件

因此,本质上,除非在站点的/Local文件夹中找到名为“rewrite rule enable https.txt”的文件,否则此规则不会启用