|
虽然DiscuzX3.2、X3.3、 X3.4已经针对https做了优化, 第一步: 全局 > 站点信息 > 网站 URL,修改为https://www.0co.cn/的格式
第二步:修成Discuz适配https 如果你的Web服务是Apache,请忽略这一步,Nginx请继续看: Discuz判断网站是否启动SSL是采用 $_SERVER[‘HTTPS’] 的方式,此方法不支持Nginx(nginx+php-fpm),需要先做一些修改,让Discuz使用 $_SERVER[‘SERVER_PORT’]来判断网站是否启用SSL。 source/class/discuz/discuz_application.php(约第187行处): 查找: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
[color=rgb(143, 195, 31) !important]复制代码
修改为:- $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
[color=rgb(143, 195, 31) !important]复制代码
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'], '/'))));
[color=rgb(143, 195, 31) !important]复制代码
修改为: - 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'], '/'))));
[color=rgb(143, 195, 31) !important]复制代码
懒人包下载:【适用于:Discuz_X3.2_SC_GBK【2016-06-01】】或Discuz! X3.3更新版本。
第三步:Ucenter通信使用https方式 后台 > 站长 > UCenter设置 > UCenter 访问地址,修改为https开头的 UCenter后台 > 应用管理 > 应用的主URL,修改为https开头。
第五步:解决浏览器提示“加载不安全的脚本”
这个提示是因为这个脚本使用http方式加载的原因:
[color=rgb(143, 195, 31) !important]复制代码
此脚本的功能是检查补丁和安全通知,用处不大,果断删除。
删除方法:编辑模板的footer.htm,在最后找到并删掉:
[color=rgb(143, 195, 31) !important]复制代码
即可。
第六步:解决QQ互联的问题 首先升级QQ互联插件,最低版本要求是 1.18.2,如果升级后依然不行,需要修改回调 URL 为非 HTTPS 的: 找到: source/plugin/qqconnect/connect.class.php 大约41行 在common_base() 函数里面,将 $_G[‘siteurl’] 直接硬编码为 你的http的URL ,首先修改callback_url,如果不行,将所有包含connect.php 的 URL 全部替换。
第七步:将论坛帖子中网站的URL改成https格式的。 会员在发帖的过程中,很可能调用了本站别处的帖子或连接,而这个链接肯定是http的,所以需要将这些链接全部修改成https格式的:
执行SQL语句,可以在DZ后台,或者phpmyadmin中都可以:
[color=rgb(143, 195, 31) !important]复制代码
有会员反馈以上SQL升级语句报错: 如果存在该问题则使用以下SQL语句即可:(注意符号标点~)
[color=rgb(143, 195, 31) !important]复制代码
|