我想强制所有入站连接恢复为我的网站的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'。)
答案 0 :(得分:15)
以下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>