w3h5

宝塔面板 IIS10 利用web.config文件强制HTTPS跳转

我的服务器是用的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。

宝塔面板 IIS10 利用web.config文件强制HTTPS跳转 经验总结 第1张

2、SSL的客户证书一定要设置为“忽略”,否则手机访问时会提示“找不到任何证书”,应用“浏览器”请求使用证书。

宝塔面板 IIS10 利用web.config文件强制HTTPS跳转 经验总结 第2张

赞 (3)
分享到: +More |

评论 沙发

换个身份