当前位置:首页 > discuz教程 > 正文内容

史上最全!discuz X3.2修改文件支持https的教程

葱子8年前 (2017-01-20)discuz教程4413

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证书。  

接下来你还需要做的配置有:

1、服务器端部署https的SSL证书可以看我的这个教程:

nginx部署https: https://www.aitiancheng.com/article-246.html 

apache部署https教程:https://www.aitiancheng.com/article-558.html 

2、同时,如果需要将http请求转换为https,还需要对网站做301跳转,具体教程看这里:https://www.aitiancheng.com/article-253.html 

3、做了301跳转后,会导致UC通信失败,解决办法看这里:https://www.aitiancheng.com/article-374.html  

扫描二维码推送至手机访问。

版权声明:本文由葱子博客发布,如需转载请注明出处。

本文链接:https://www.aitiancheng.com/article-291.html

相关文章

discuz X3.2/X3.4取消邮箱email注册必填项

discuz X3.2/X3.4取消邮箱email注册必填项

最近我的新网站开启了手机号注册功能,所以邮箱注册这项就不是必须的了。 查找了下相关的资料和教程,总结如下:  实现功能:  1、在DZ后台新增邮箱必填设置项   &n...

解决discuz X3.4启用搜索,就Oops! System file lost: class/class_cloud.php

解决discuz X3.4启用搜索,就Oops! System file lost: class/class_cloud.php

今天在启用我论坛的搜索功能的时候,发现点击全局-搜索设置,无法正确开启搜索功能。 就研究了下,我论坛的错误提示是admincp_setting.php这个文件有问题,看提示代码,应该是跟云平台有关。   (注:...

【教程】discuz如何开启手机版访问域名 如何设置手机站的https访问

【教程】discuz如何开启手机版访问域名 如何设置手机站的https访问

很多discuz的网站都会开启手机版的访问域名,不过由于所申请的SSL证书(腾讯1年免费版https://www.aitiancheng.com/article-333.html)只支持单一域名,所以在使用https模式访问手机站的时...

discuz X3.4是否值得升级?是否有必要升级到X3.4?

discuz X3.4是否值得升级?是否有必要升级到X3.4?

Discuz! X3.4 在继承和完善 Discuz! X3.3 的基础上,去除了云平台的相关代码,其他功能保持不变,如果您的论坛不需要云平台可以选择安装或更新到此版本。X3.4将不定期的在官方 Git 中更新,欲追求更...

discuz全站开启https教程专题集锦

discuz全站开启https教程专题集锦

经过我几个月来的研究,已经可以说是把discuz全站开启https的教程做好了,不过对于新手来讲,还是有点复杂。 这篇文章里,我会把discuz全站开启https的教程做下梳理,告诉你每一步要如何去做。  说明...

完美解决Discuz!论坛无法开通QQ互联 提示系统繁忙请稍后再试【转载】

完美解决Discuz!论坛无法开通QQ互联 提示系统繁忙请稍后再试【转载】

由于目前(2017年5月份以后安装)Discuz!论坛QQ互联功能暂时无法正常开通,根据目前官方论坛内站长反应的情况来看,官方应该是关闭了直接开通QQ互联功能,那么除了使用站帮网的插件强制开通QQ互联功能,还有没有别的办...