我们的论坛使用的是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/ 感受一下效果