切换风格

默认Lavender Sky Flowers Wizard Snow Beige California City Dragon Black London Sunset glow Pink Cloud

349

主题

5075

积分

25

精华

用户组 

易积分
11860
热心
102
好评
136
QQ

热心会员国庆节纪念勋章活跃会员

DZ X3.4全站开启https的教程[复制链接]
发表于 2018-4-18 13:44:27 | 显示全部楼层 |阅读模式
随着现在https越来越普遍,我今天就来分享一下discuz3.4全站开启https教程

这个教程就是本站的设置方式:

首先我们需要申请下来SSL证书,这个我就不说了,现在很多IDC服务商都免费提供申请服务

我们安装证书后,使用https直接访问的话会出现这个



20180418133107.jpg

这个就是说明你的网站页面内容存在http协议。这个时候我们就需要修改几个地方来达到全站https的效果


20180418133335.jpg

当全站连接都是https的时候,浏览器标志就会变绿了。

接下来就是设置方法了。

1、查找修改文件discuz_application.php :
打开文件source/class/discuz/discuz_application.php (约第 187 行处) 查找:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
复制代码
替换为:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
复制代码
2、查找修改文件avatar.php :
打开文件uc_server/avatar.php (约第 13 行处)查找:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
复制代码
替换为:
  1. 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 后台:站长 – 数据库 – 升级
  1. UPDATE pre_forum_post SET message=REPLACE(message,'http://你的网址','https://你的网址');
复制代码


需要注意的是,出于安全考虑, Discuz 后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,如果想自己随意书写 SQL 升级语句,需要将程序文件 config/config_global.php 当中的$_config[admincp][runquery] 设置修改为 1 。


到此,discuz X3.4已经开启支持https了 。
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

29

主题

1955

积分

0

精华

用户组 

易积分
5306
热心
12
好评
2

热心会员

发表于 2018-4-18 15:04:49 | 显示全部楼层
不错 学习了
每天美滋滋。。。。
回复

使用道具 举报

6

主题

856

积分

1

精华

用户组 

易积分
2528
热心
0
好评
0
发表于 2018-4-18 18:52:30 | 显示全部楼层
感谢分享哈
回复

使用道具 举报

48

主题

438

积分

1

精华

用户组 

易积分
1319
热心
0
好评
5
QQ
发表于 2018-4-19 08:17:42 | 显示全部楼层
一般情况下在安装程序前就做好SSL就不会出现这种后续浏览器不信任的问题
本人擅长 Ai、Fw、Fl、Br、Ae、Pr、Id、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal 等单词的拼写,熟悉 Windows、Linux、OS X、Android、iOS、WP8 等系统的开关机。
回复

使用道具 举报

QQ|sitemap|免责声明|RGB颜色对照表|手机版|小黑屋| 易如意 - E4A中文编程学习交流论坛

GMT+8, 2024-5-20 04:28 , Processed in 0.043721 second(s), 41 queries .

Powered by Discuz! X3.4

© 2001-2018 eruyi.cn

返回顶部