IIS7以上 强制HTTP 重定向到 HTTPS的方法

帮助中心

IIS7以上 强制HTTP 重定向到 HTTPS的方法

2021-05-13 22:34


                                            




http强制跳转到HTTPS 完整教程

IIS7 / IIS 7.5 (理论上IIS7.5以上均可用)下强制跳转 HTTPS 访问网站

首先服务器必须配置安装好伪静态组件!否则不生效

ASP.NET站可直接修改web.config(与“6、IIS配置图示”效果相同),例如:见<rewrite>…</rewrite>节点

我在我的web.config文件中使用以下代码在我的整个站点上强制使用SSL;

<system.webServer>

<rewrite> 

<rules> 

<rule name="Redirect HTTP to HTTPS" stopProcessing="true"> 

<match url="(.*)"/> 

<conditions>

<add input="{HTTPS}" pattern="^OFF$"/> 

</conditions>

<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/> 

</rule> 

</rules> 

</rewrite>

</system.webServer>

但是我们考虑到以下情况:

我想做的是强制ssl只有〜/ purchase /和〜/ account / path并在它们下面.该匹配网址应该是什么?

注意正则表达式在这里也适用于我和通配符.

您应该使用此模式(这将适用于/ purchase / something以及/ account / something-else):

^((purchase|account)/.*)$

此时就应该配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <rewrite>

            <rules>

                <rule name="Force HTTPS" stopProcessing="true">

                    <match url="^((purchase|account)/.*)$" />

                    <conditions>

                        <add input="{HTTPS}" pattern="^OFF$" />

                    </conditions>

                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />

                </rule>

            </rules>

        </rewrite>

    </system.webServer>

</configuration>

这样就完成了!!