我的服务器是用的Windows Server IIS10,也是刚刚搬过来不久,之前HTTPS是验证通过的。
因为我比较懒,所以用的“BT面板”,设置了SSL和强制HTTPS,好像并不怎么理想。
今天发现我网站的百度HTTPS验证不通过,应该是搬过来之后,配置没有达到标准。
找了很多种方法去配置都验证不成功,我打算利用网站根目录的 web.config 文件实现自动跳转,网上大多数的规则写法都是一样的,不过好像只适用于IIS7、8。
代码如下:
<?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>
如果您之前有配置文件,只需要添加 <rule> ... </rule> 部分即可。
最后在GG上找到了配置规则,可以适用于我的IIS10。
在 <rules> 标签下,添加如下代码:
<clear /> <rule name="Redirect to https" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> </rule>
注意,一定要加在最前面,否则 <clear /> 会去掉 config.web 中包含或继承来的引用,造成网站出错。
添加后保存,重启IIS服务器就可以实现跳转了。
需要注意的是:
1、IIS管理器内该网站的 SSL设置,“要求SSL”一定不要勾选,会造成 http 403 或者 500 错误,无法跳转 https。
2、SSL的客户证书一定要设置为“忽略”,否则手机访问时会提示“找不到任何证书”,应用“浏览器”请求使用证书。
未经允许不得转载:前端资源网 - w3h5 » 宝塔面板 IIS10 利用web.config文件强制HTTPS跳转