虚拟主机开启SSL证书后,实现HTTP强制跳转HTTPS

发布于 2020-06-12  3.77k 次阅读


本文于 2020年6月12日 3:21 更新,注意查看最新内容

前言

前两天把一个网站从VPS迁移到了一台主机上,原因是VPS的延迟太高,而网站本身并不需要太高配置,但需要保证访问速度。

可能平时用宝塔习惯了,所以多少有些不太适应,遇到了很多问题,现在基本迁移完成,记录一下遇到的问题。

方法

网站伪静态配置文件的<Directory>标签内,根据需要输入以下代码:

整站跳转

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]

目录跳转

/yourfolder为设置的跳转目录

RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

注意

如果伪静态配置文件中存在伪静态规则跳转代码需要加在其他规则

不然会出现首页正常跳转其他URL不跳转的现象(实际使用中遇到)。

疑惑

HTTP强制跳转HTTPS后(配置了伪静态规则),使用站长工具测速,全部超时,但正常访问没有问题。

希望有知道的人可以评论解答一下 :cry:

参考

《虚拟主机开启SSL证书后怎么实现http自动跳转https的设置方法》


这短短的一生,我们最终都会失去。