Url rewriting 无法清除子文件夹中的重写规则

Url rewriting 无法清除子文件夹中的重写规则,url-rewriting,web-config,iis-8,Url Rewriting,Web Config,Iis 8,我在网站根目录的web.config中有此规则,该规则重定向到HTTPS: <rewrite> <rules> <rule name="HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" negate="false" /> <conditions logicalGrouping="MatchAny">

我在网站根目录的web.config中有此规则,该规则重定向到HTTPS:

<rewrite>
<rules>
<rule name="HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" negate="false" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
    <rewrite>
        <rules>
            <clear />
        </rules>
    </rewrite>

在一个子文件夹中,我有单独的配置文件,我想清除重定向到HTTPS,但此文件夹也重定向到HTTPS:

<rewrite>
<rules>
<rule name="HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" negate="false" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
    <rewrite>
        <rules>
            <clear />
        </rules>
    </rewrite>

您不能这样做。规则只能存储在web.config中定义。您可以将它们放在那里,或者提供存储规则的文件的路径(但仍在web.config中定义),如下所示:

<system.webServer>
    <rewrite>
        <rules configSource="App_Config\RewriteRules.config" />
        <outboundRules configSource="App_Config\OutboundRewriteRules.config" />
        <rewriteMaps configSource="App_Config\RewriteMaps.config" />
    </rewrite>
</system.webServer>

如果您不想将某些URL重定向到HTTPS,那么您需要创建一个智能规则来检测这一点(或创建一组规则)