匿名用户 发表于 2018-4-16 15:50:10

虚拟主机强制用户使用https访问网站的方法

官方只有配置SSL的方法,并没有强制用户使用SSL访问网站的方法。这使得用户还是可以通过http访问网站,一般用户顶多输入网站域名,根本不会手动输入https,默认访问的还是http,根本达不到加密的效果。
由于这只是虚拟主机,不是自己的独立服务器,一般的方法不适用。但是我琢磨很久,总算想出来了办法。


下面分两种办法,一种是超简单的办法,还有一种是一劳永逸的方法,各位可以根据自己的需求来选择自己需要的方法。


注意:下面的方法要在你已经配置好SSL证书的前提下使用!不然无效!
SSL证书的配置方法可以在这版块自己找找

第一种方法(不推荐):
在你的网页头里加上一段JS,使用户强制使用https访问:
<script type="text/javascript">
var targetProtocol = "https:";

if (window.location.protocol != targetProtocol)
window.location.href = targetProtocol +
window.location.href.substring(window.location.protocol.length);

</script> 这种办法的优点是简单易用,但缺点就比较多了:


缺点1:用户访问速度减慢(这里面等于说检测是不是https,不是的话就替换为https,这样浪费资源,会降低浏览体验)
缺点2:百度的蜘蛛引擎不收录(搞不明白为什么,其它的都收录)
缺点3:旧版本浏览器不支持(一般都支持,除非是用Mozilla 4.0之前的,基本可以忽略)
总结:这种方法的优点是简单方便,适用于小站。但是稍微大一点的站就不适用了(不成一页一页的加?),并且缺点太多。

第二种方法(推荐):
首先,前往硅云虚拟主机控制面板,点击“高级功能”,找到“伪静态/URL重写”,点进去,打开URL重写的开关。
接下来,进入在线FTP,在你的网站/web目录中创建一个新文件,命名为“.htaccess”(如果已经有.htaccess了请跳过此步骤)
然后,编辑.htaccess文件,加入以下代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.你的域名.com
RewriteCond %{SERVER_PORT} !^443$;
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI}
注意:上面的“www.你的域名.com”需要自己动手修改成自己的域名
然后返回面板,重启主机即可生效。
优点1:实现了全站强制https访问
优点2:暂未发现任何缺点


以上就是全部教程,希望对你有帮助!

test1 发表于 2018-4-16 17:30:07

写的很全面,可以借鉴!

xiaomeng 发表于 2018-8-4 02:35:30

挖槽?上传没权限 删除文件把我整个目录删了

Mark 发表于 2018-8-21 08:17:22

显示重定向过多怎么解决

匿名用户 发表于 2018-9-4 12:17:26

Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决

应该是你域名没有设置对,这个方法是有缺点的,比如说你的域名是123.com,上面的.htaccess文件里面域名写的是123.com,那么以后只能通过123.com访问网站了,不能通过www.123.com访问

test1 发表于 2018-9-6 19:50:42

Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决

重定向过多是因为你跳转到https后又跳转到了http,反复循环。检查去除其中的一环就可以

花紫 发表于 2018-11-14 00:33:42

为什么没效果?

2574652740 发表于 2018-11-14 22:01:57

出现重定向的这样写试试
RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1

test1 发表于 2019-3-29 18:35:49

xiaomeng 发表于 2018-8-4 02:35
挖槽?上传没权限 删除文件把我整个目录删了

厉害。

74vip 发表于 2019-4-13 14:11:52

您好,按照您的这个设置了之后,没效果,直接打不开了!!
只用添加这两行就ok了。亲测
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://您的域名/$1
页: [1]
查看完整版本: 虚拟主机强制用户使用https访问网站的方法