配置IIS7-IIS10 伪静态web.config 实现http重定向跳转HTTPS(包括不带www跳转到带www)
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
为了友好的SEO保证域名统一性,将访问 https://www.laoliang.net、http://06929.com、https://06929.com 的域名都跳转到 https://www.laoliang.net,
我们用IIS的伪静态web.config 可以进行如下配置来实现我们说到的功能
(需要安装 IIS UrlRewrite 模块,代码注释是为了方便理解,部署到线上请删除中文注释):
IIS UrlRewrite 模块 下载链接 (请点击下面百度网盘下载)
链接:https://pan.baidu.com/s/1RN6IoxtEGYqVdlnfjkmcuQ
提取码:jq3q
以下是两种方案,根据客观自由选择;
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="http redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HostNameRule1">
<match url="(.*)" />
<!--匹配所有条件-->
<conditions logicalGrouping="MatchAny">
<!--当不是使用https协议访问的时候-->
<add input="{HTTPS}" pattern="^OFF$" />
<!--并且访问的host不是06929.com这种,例如www.laoliang.net-->
<add input="{HTTP_HOST}" pattern="^06929\.com$" negate="true" />
</conditions>
<!--跳转到https-->
<action type="Redirect" url="https://06929.com/{R:1}" />
</rule>
<rule name="HTTPS redirect">
<match url="(.*)" />
<conditions>
<!--当使用HTTPS协议访问-->
<add input="{HTTPS}" pattern="^ON$" />
<!--当访问 https://www.laoliang.net的时候 -->
<add input="{HTTP_HOST}" pattern="^06929\.com$" negate="true" />
</conditions>
<!--跳转到HTTPS-->
<action type="Redirect" url="https://06929.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
这里需要注意,想让 https://06929.com 也可以跳转到 https://www.laoliang.net,在申请 HTTPS 证书的时候,要把 www.laoliang.net 这种域名也给申请上,
否则浏览器会解析不出 https://www.laoliang.net,因为在进行 HTTPS 加密握手的时候就会认证失败。
chrome 调试中发现 HTTPS 改动不生效
HTTPS 第一次连接域名的时候会和证书颁发机构进行 HTTPS 证书认证,后续的连接会缓存起来,清缓存就好了。
PS:
相关资料
- OpenSSL下载:http://gnuwin32.sourceforge.net/packages/openssl.htm
- SSL证书在线工具:https://csr.chinassl.net/
- 免费证书在线申请:https://freessl.org/
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!