使用IIS向某些URL发送Http到Https

时间:2017-04-04 19:03:23

标签: asp.net ssl url-rewriting iis-8

ASP .Net网站。 Visual Studio 2013.Windows Server 2012 R2 +更新

我正在尝试将某些页面重定向为https,即登录和付款页面以及这些目录下的页面。到目前为止我在IIS中有

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Redirect to HTTPS" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTPS}" pattern="^OFF$" />
                    <add input="{HTTP_HOST}" pattern="^.example\.com$" />
                    <add input="{HttpsRedirects:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}/{C:1}" appendQueryString="false" redirectType="SeeOther" />
            </rule>
        </rules>
        <rewriteMaps>
            <rewriteMap name="HttpsRedirects">
                <add key="/user/login/" value="/user/login/" />
                <add key="/user/payment/" value="/user/payment/" />
            </rewriteMap>
        </rewriteMaps>
    </rewrite>
</system.webServer>

我已将pattern =“^ www.example.com $”更改为pattern =“^。example.com $”,因为该网站的主要域名是example.com(没有www)。

我遇到的问题是,似乎没有将https添加到这些目录下的所有页面,即登录和付款目录下的所有页面?

如果我手动添加https,那么它也会将其应用于图像文件(我看到的图像看起来不正确)。

我如何修改上述代码以排除图像(文件扩展名或目录)并确保用户何时到达这些页面时使用https?

0 个答案:

没有答案