加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 安全 > 正文

如何替Discuz! X3.1 3.2 开启https

发布时间:2021-11-17 20:00:19 所属栏目:安全 来源:互联网
导读:如何给Discuz! X3.1/3.2 开启https,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 教你如何给 Discuz! X3.1/3.2 开启https(SSL)支持! HTTPS SSL 教程 DZ作为社区交流系统:1. 对高
如何给Discuz! X3.1/3.2 开启https,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
教你如何给 Discuz! X3.1/3.2 开启https(SSL)支持! – HTTPS SSL 教程
 
DZ作为社区交流系统:1. 对高版本 PHP 兼容不佳 2. 对 HTTPS 兼容不佳 3.目前官方没有推出一键切换方案,那么我们要解决这个问题只能自己动手了。
 
1、SSL证书&配置
 
首先,要开启SSL,总得有一个证书吧?无论是正规CA颁发的,还是自己签的,没有肯定是不行的。如果没有的话,先去申请个吧。(具体方法请谷歌,这里不再赘述)
2、Discuz! 优化
 
2.1、程序调整
 
自 Discuz! X3 开始,已经加入了对https的支持,如果你使用https访问论坛,论坛中的链接都会变成https。如果你发现大部分链接都已经使用了https,就代表Discuz已经自动识别了,此时,可以跳过本步,直接进入下一步。
Discuz采用 $_SERVER[‘HTTPS’] 的方式来判断SSL,但是因为VPS架构问题(nginx+php-fpm),无法采用这种方式识别,所以需要对Discuz程序进行一些调整(使用 $_SERVER[‘SERVER_PORT’] 来判断)。
 
source/class/discuz/discuz_application.php(约第187行处):
 
查找:
 
$_G[‘isHTTPS’] = ($_SERVER[‘HTTPS’] && strtolower($_SERVER[‘HTTPS’]) != ‘off’) ? true : false;
修改为:
 
$_G[‘isHTTPS’] = ($_SERVER[‘SERVER_PORT’] == 443 || $_SERVER[‘HTTPS’] && strtolower($_SERVER[‘HTTPS’]) != ‘off’) ? true : false;
uc_server/avatar.php(约第13行处):
 
查找:
 
define(‘UC_API’, strtolower(($_SERVER[‘HTTPS’] == ‘on’ ? ‘https’ : ‘http’).’://’.$_SERVER[‘HTTP_HOST’].substr($_SERVER[‘PHP_SELF’], 0, strrpos($_SERVER[‘PHP_SELF’], ‘/’))));
修改为:
 
define(‘UC_API’, strtolower(($_SERVER[‘SERVER_PORT’] == 443 || $_SERVER[‘HTTPS’] == ‘on’ ? ‘https’ : ‘http’).’://’.$_SERVER[‘HTTP_HOST’].substr($_SERVER[‘PHP_SELF’], 0, strrpos($_SERVER[‘PHP_SELF’], ‘/’))));
修改过后,更新缓存,发现大多数链接都变成了https。
 
2.2、后台设置
 
在后台还有一些设置,可能会干扰https的使用
 
后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的
 
UCenter后台 > 应用管理 > 应用的主URL,修改为https开头
 
另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果进行了之前的几步还是无法启用,可以暂时删除这里的设置试试。
 
3、清理缓存
 
设置完成之后,需要清理缓存,使设置生效。
 
清理缓存及内存缓存,如果设置了帖子缓存,还需清理数据库内的缓存(清空相应cache数据库,或者静等缓存失效)
总结,目的就是修改HTTP头改成HTTPS。
 
至此,Discuz https启用成功,当然,在访问某些页面的时候,可能锁会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。只能等待Discuz进一步支持https。
 
关于如何给Discuz! X3.1/3.2 开启https问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读