discuz X3.2修改文件支持https的详细教程

2018-04-23 1146 0条评论


discuz X3.2在系统上是支持https的,不过需要手动修改几个地方。首先确保服务器端已开启https,且正确配置了SSL证书。


discuz X3.2开启支持https主要需要修改一下几个地方:


1、查找修改文件discuz_application.php :(适用于nginx+pfm环境)

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;


2、查找修改文件avatar.php :

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'], '/'))));


3、除去非 HTTPS 内容避免提示”不安全内容“

Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段 JS 加载脚本删除就行。

非楼主层如果有点评,那么点评者头像不是 HTTPS 开头,也需要修改一个文件来适配: template/default/forum/viewthread_node_body.htm (约 180 行),搜索 div class="psta vm">,将下面一行注释掉或者删除。

打开浏览器,使用开发者工具或者查看源码逐一排查加载的非 HTTPS 资源并修改。


4、后台设置的修改完善

在后台还有一些设置,可能会干扰 https 的使用。


后台 >全局 > 站点 URL ,改为 https 开头的


后台 > 站长 > UCenter 设置 > UCenter 访问地址,修改为 https 开头的


UCenter 后台 > 应用管理 > 应用的主 URL ,修改为 https 开头。

修改后可能会显示通讯失败,如果 UC 和论坛程序安装在同一机器,此失败可无视,实测可以和 UC 正常通讯不影响(测试是否正常通讯程序的 Bug ),如果 UC 和论坛程序不在一台机器上,有可能不能通讯。 另外在 后台 > 全局 > 域名设置 中的一些设置也可能使 https 失效,如果更新缓存后论坛默认连接还是 HTTP ,请删除 后台 > 全局 > 域名设置 > 应用域名 > 默认 里面的默认域名(一般去 forum.php 尾巴这里会有内容,为了 HTTPS 请删除)。


5、模板的调整

主要在模板的 foot.html 以及 header.html 等文件中,使用工具逐一排查模板文件中写死的 HTTP 链接,修改为 HTTPS 。


 


到此,discuz X3.2已经开启支持https了 。


 


当然,你还需要申请SSL证书、在服务器端部署SSL证书。


文章版权及转载声明

本文作者:符文浩 网址:http://blog.fuwenhao.com/post/69.html 发布于 2018-04-23
文章转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:

评论列表 (暂无评论,1146人围观)参与讨论

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码