请选择 进入手机版 | 继续访问电脑版

硅云开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 19600|回复: 9

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

  [复制链接]

1

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48

程序圈最佳新人

发表于 2018-4-16 15:50:10 | 显示全部楼层 |阅读模式
图文教程
教程概要(用途): 硅云的虚拟主机强制用户使用https访问网站的方法
教程内容说明: 此方法仅适用于硅云的Apache虚拟主机,其它(比如vps等)不适用
教程来源方: 个人热心人士
官方只有配置SSL的方法,并没有强制用户使用SSL访问网站的方法。这使得用户还是可以通过http访问网站,一般用户顶多输入网站域名,根本不会手动输入https,默认访问的还是http,根本达不到加密的效果。
由于这只是虚拟主机,不是自己的独立服务器,一般的方法不适用。但是我琢磨很久,总算想出来了办法。


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


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

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

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

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


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

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


以上就是全部教程,希望对你有帮助!
初来乍到,多多包涵!bbs.vpsor.com会员

217

主题

553

帖子

3414

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3414

荣誉管理论坛元老管理员知名站长

QQ
发表于 2018-4-16 17:30:07 | 显示全部楼层
写的很全面,可以借鉴!
硅云,走近计算,走进未来!

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2018-8-4 02:35:30 | 显示全部楼层
挖槽?上传没权限 删除文件把我整个目录删了
初来乍到,多多包涵!bbs.vpsor.com会员
匿名  发表于 2018-8-21 08:17:22
显示重定向过多怎么解决
初来乍到,多多包涵!bbs.vpsor.com会员

1

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48

程序圈最佳新人

 楼主| 发表于 2018-9-4 12:17:26 | 显示全部楼层
Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决

应该是你域名没有设置对,这个方法是有缺点的,比如说你的域名是123.com,上面的.htaccess文件里面域名写的是123.com,那么以后只能通过123.com访问网站了,不能通过www.123.com访问
初来乍到,多多包涵!bbs.vpsor.com会员

217

主题

553

帖子

3414

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3414

荣誉管理论坛元老管理员知名站长

QQ
发表于 2018-9-6 19:50:42 | 显示全部楼层
Mark 发表于 2018-8-21 08:17
显示重定向过多怎么解决

重定向过多是因为你跳转到https后又跳转到了http,反复循环。检查去除其中的一环就可以
硅云,走近计算,走进未来!

0

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2018-11-14 00:33:42 | 显示全部楼层
为什么没效果?
初来乍到,多多包涵!bbs.vpsor.com会员

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2018-11-14 22:01:57 | 显示全部楼层
出现重定向的这样写试试
RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
初来乍到,多多包涵!bbs.vpsor.com会员

217

主题

553

帖子

3414

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3414

荣誉管理论坛元老管理员知名站长

QQ
发表于 2019-3-29 18:35:49 | 显示全部楼层
xiaomeng 发表于 2018-8-4 02:35
挖槽?上传没权限 删除文件把我整个目录删了

厉害。
硅云,走近计算,走进未来!

0

主题

4

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2019-4-13 14:11:52 | 显示全部楼层
您好,按照您的这个设置了之后,没效果,直接打不开了!!
只用添加这两行就ok了。亲测
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://您的域名/$1 [R,L]
http://v.74vip.top
关闭

硅云论坛上一条 /1 下一条

QQ|云虚拟主机|云服务器|域名注册|关进小黑屋|硅云开发者社区

GMT+8, 2024-3-29 01:55 , Processed in 0.207448 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2016-2020, 硅云论坛.

快速回复 返回顶部 返回列表