允许ASP.NET在少数页面上使用SSL,其他页面应作为HTTP使用

允许ASP.NET在少数页面上使用SSL,其他页面应作为HTTP使用,asp.net,visual-studio-2015,url-rewriting,web-config,Asp.net,Visual Studio 2015,Url Rewriting,Web Config,在我的web应用程序中,我的页面很少需要SSL(2或3),但其他所有内容都应该像HTTP一样工作 所以我在prerender中尝试了页面重定向,这似乎不是一个好的解决方案。主要是因为当从这些页面重定向时,结果页面保持为HTTPS。因此,我们如何通过URL重写或其他一些好方法实现这一点呢?例如,如果您只想让两个URL在HTTPS中可用:/abc和/xyz,而所有其他URL都应该在HTTP下。您需要使用此规则: <rule name="abc and xyz redirect to HTTPS

在我的web应用程序中,我的页面很少需要SSL(2或3),但其他所有内容都应该像HTTP一样工作


所以我在prerender中尝试了页面重定向,这似乎不是一个好的解决方案。主要是因为当从这些页面重定向时,结果页面保持为HTTPS。因此,我们如何通过URL重写或其他一些好方法实现这一点呢?例如,如果您只想让两个URL在HTTPS中可用:
/abc
/xyz
,而所有其他URL都应该在HTTP下。您需要使用此规则:

<rule name="abc and xyz redirect to HTTPS" stopProcessing="true">
    <match url="^(abc|xyz)$" />
    <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
<rule name="other than abc or xyz redirect to HTTP" stopProcessing="true">
    <match url="^(abc|xyz)$" negate="true" />
    <conditions>
        <add input="{HTTPS}" pattern="^ON$" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" />
</rule>

检查此答案: