< 返回

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

2021-04-20 11:09 作者:Waiter 阅读量:7955

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>

这样就完成了!!
在线客服
返回顶部