8

我想强制所有入站连接为我的站点恢复为 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>

这很好用。现在每个进入http://mySite.com的人都会被重定向到https://mySite.com

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

(我希望 /ajax 子站点免于 https 重写的原因是因为它可以从基于 HTTP 的第三方网页访问。如果调用 /ajax 的第三方页面是 HTTP(不是HTTPS),然后我想在调用时保留 HTTP'ness。)

4

1 回答 1

19

以下 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>
于 2013-04-30T23:51:54.080 回答