虚拟主机强制用户使用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:暂未发现任何缺点
以上就是全部教程,希望对你有帮助!
写的很全面,可以借鉴! 挖槽?上传没权限 删除文件把我整个目录删了 显示重定向过多怎么解决 Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决
应该是你域名没有设置对,这个方法是有缺点的,比如说你的域名是123.com,上面的.htaccess文件里面域名写的是123.com,那么以后只能通过123.com访问网站了,不能通过www.123.com访问 Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决
重定向过多是因为你跳转到https后又跳转到了http,反复循环。检查去除其中的一环就可以 为什么没效果? 出现重定向的这样写试试
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 xiaomeng 发表于 2018-8-4 02:35
挖槽?上传没权限 删除文件把我整个目录删了
厉害。 您好,按照您的这个设置了之后,没效果,直接打不开了!!
只用添加这两行就ok了。亲测
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://您的域名/$1
页:
[1]