Discuz!x 3.2全站切换到 HTTPS的修改方法

我们的论坛使用的是Discuz!x 3.2 最新版的,为了用户的数据安全决定全站启用https。

首先,去后台的这个地方:

设置网站 URL为https的。

第二歩:

然后去 后台->  全局-> 域名设置   把应用域名 和根域名设置 都给取消掉

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

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

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

第三步,   打开   source/class/discuz/discuz_application.php  这个文件找到

$_G['siteurl'] = dhtmlspecialchars('http'.($_G['isHTTPS'] ? 's' : '').'://'.$_SERVER['HTTP_HOST'].$sitepath.'/');

替换为

$_G['isHTTPS'] = true;

 

第三步, 打开  uc_server/avatar.php  找到:

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('https'.'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));

 

这样去后台更新一下缓存, 去前台看一下   大部分链接已经替换为 https的了,但是还有小瑕疵

第五步,打开   source/plugin/manyou/Service/DiscuzTips.php 这个文件  然后找到  最后倒数 第三行  把

http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js

修改为:

https://discuz.gtimg.cn/cloud/scripts/discuz_tips.js

 

第六步,帖子内容页会有一个问题,那就是如果有人点评帖子的话 你,点评者的头像不是https开头的, 为了 解决这个问题,需要修改一下模板文件    找到 template/default/forum/viewthread_node_body.htm 这个文件 。把:

$comment[avatar]

替换为 :

<!--{eval echo str_replace("http","https",$comment[avatar]);}-->

 

到这里 大功告成,大家可以去  https://www.eenot.com/ 感受一下效果

暂无评论

发表评论