是否覆盖子站点的IIS重写规则?

是否覆盖子站点的IIS重写规则?,iis,rewrite,Iis,Rewrite,我想强制我的站点的所有入站连接恢复为HTTPS。在StackOverflow.com中搜索答案时生成以下代码: <rewrite> <rules> <rule name="Redirect to HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions>

我想强制我的站点的所有入站连接恢复为HTTPS。在StackOverflow.com中搜索答案时生成以下代码:

<rewrite>
    <rules>
        <rule name="Redirect to HTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="^OFF$" />
                </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
     </rules>
</rewrite>

被重定向到

mySite.com有一个子应用程序,可通过mySite.com/ajax/访问。我不希望此子应用程序的入站连接被重写;当连接到/ajax子应用程序时,用户指定的原始协议(http或https)应该得到维护。我应该在这个子应用程序的web.config文件中放置什么来否定在父级发生的重写


(我希望/ajax子站点免于https重写的原因是,它可以从基于HTTP的第三方网页访问。如果调用/ajax的第三方网页是HTTP(不是https),那么我希望在调用时保留HTTP的特性。)

下面的web.config代码段应该可以执行您想要的操作。它将删除此应用程序的所有重写规则

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <!-- Insert rules for this application (if any) **below** the "clear" -->
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


如果两个应用程序共享同一个webroot和config,你怎么能做类似的事情呢?@rickard一句评论不适合问这个问题,因为这是一个不同的问题。尝试搜索,或作为新问题提问。我在这里给你一个可能性,尽管我不知道它是否适用于你的应用程序。您能否将子文件夹转换为其自己的应用程序(在IIS管理器中右键单击该子文件夹并选择“转换…”。@DenisHowe我不知道在哪里专门记录了重写规则,但它在IIS配置中随处可见。请参阅一个示例。(我想我最初是通过查看GUI生成的配置文件发现的。)这有助于我在一个场景中使用IIS在同一台服务器上托管OpPlan Api和React,React设置自定义重写规则,我需要在默认网站的IIS根上托管该应用程序,同时清除.net core rest Api应用程序的重写规则。Handy!