从 ssl 重定向规则中排除页面

Exclude page from ssl redirect rule

我的 web.config 中有一个重写规则,强制所有页面转到 https。 有没有办法排除单个页面。

例如不想 http://www.example.com/thispage.ashx 重定向到 https 我如何修改规则以排除它?

<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>

您可以创建一个附加条件来匹配除 /thispage.ashx 以外的所有网址。

<rule name="Redirect to HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{URL}" pattern="^/thispage\.ashx$" negate="true" />
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>

注意:要测试您的新规则,请确保您已清除正在处理的网站的浏览器缓存。否则,由于客户端缓存的重定向响应,您可能无法测试规则是否有效。