DZ X3.4全站开启https的教程
随着现在https越来越普遍,我今天就来分享一下discuz3.4全站开启https教程这个教程就是本站的设置方式:
首先我们需要申请下来SSL证书,这个我就不说了,现在很多IDC服务商都免费提供申请服务
我们安装证书后,使用https直接访问的话会出现这个
这个就是说明你的网站页面内容存在http协议。这个时候我们就需要修改几个地方来达到全站https的效果
当全站连接都是https的时候,浏览器标志就会变绿了。
接下来就是设置方法了。
1、查找修改文件discuz_application.php :
打开文件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 的使用。
后台 >全局 > 站点 URL ,改为 https 开头的
后台 > 站长 > UCenter 设置 > UCenter 访问地址,修改为 https 开头的
UCenter 后台 > 应用管理 > 应用的主 URL ,修改为 https 开头。
修改后可能会显示通讯失败,如果 UC 和论坛程序安装在同一机器,此失败可无视,实测可以和 UC 正常通讯不影响(测试是否正常通讯程序的 Bug ),如果 UC 和论坛程序不在一台机器上,有可能不能通讯。 另外在 后台 > 全局 > 域名设置 中的一些设置也可能使 https 失效,如果更新缓存后论坛默认连接还是 HTTP ,请删除 后台 > 全局 > 域名设置 > 应用域名 > 默认 里面的默认域名(一般去 forum.php 尾巴这里会有内容,为了 HTTPS 请删除)。
4、模板的调整
主要在模板的 foot.html 以及 header.html 等文件中,使用工具逐一排查模板文件中写死的 http 链接,修改为 https。
5、数据库的调整
在论坛这种交互社区中,经常回复发帖时会有出现主域名的链接,在没有 HTTPS 之前,链接都是 HTTP 开头,这个时候,我们需要修改数据库,运行下面的 mysql 命令更新数据库,将 HTTP 替换为 HTTPS :
进入 DZ 后台:站长 – 数据库 – 升级
UPDATE pre_forum_post SET message=REPLACE(message,'http://你的网址','https://你的网址');
需要注意的是,出于安全考虑, Discuz 后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,如果想自己随意书写 SQL 升级语句,需要将程序文件 config/config_global.php 当中的$_config 设置修改为 1 。
到此,discuz X3.4已经开启支持https了 。
不错 学习了 感谢分享哈 一般情况下在安装程序前就做好SSL就不会出现这种后续浏览器不信任的问题
页:
[1]