广告
返回顶部
首页 > 资讯 > 精选 >如何给Discuz! X3.1/3.2 开启https
  • 694
分享到

如何给Discuz! X3.1/3.2 开启https

2023-06-04 17:06:13 694人浏览 安东尼
摘要

如何给Discuz! X3.1/3.2 开启https,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。教你如何给 Discuz! X3.1/3.2 开启Https(SSL)支

如何给Discuz! X3.1/3.2 开启https,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

教你如何给 Discuz! X3.1/3.2 开启Https(SSL)支持! – HTTPS SSL 教程

DZ作为社区交流系统:1. 对高版本 PHP 兼容不佳 2. 对 HTTPS 兼容不佳 3.目前官方没有推出一键切换方案,那么我们要解决这个问题只能自己动手了。

SSL证书&配置

首先,要开启SSL,总得有一个证书吧?无论是正规CA颁发的,还是自己签的,没有肯定是不行的。如果没有的话,先去申请个吧。(具体方法请谷歌,这里不再赘述)
2、Discuz! 优化

1、程序调整

自 Discuz! X3 开始,已经加入了对https的支持,如果你使用https访问论坛,论坛中的链接都会变成https。如果你发现大部分链接都已经使用了https,就代表Discuz已经自动识别了,此时,可以跳过本步,直接进入下一步。
Discuz采用 $_SERVER[‘HTTPS’] 的方式来判断SSL,但是因为VPS架构问题(Nginx+php-fpm),无法采用这种方式识别,所以需要对Discuz程序进行一些调整(使用 $_SERVER[‘SERVER_PORT’] 来判断)。

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;

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’], ‘/’))));

修改过后,更新缓存,发现大多数链接都变成了https。

2、后台设置

在后台还有一些设置,可能会干扰https的使用

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

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

另外在 后台 > 全局 > 域名设置 中的一些设置也可能使https失效,如果进行了之前的几步还是无法启用,可以暂时删除这里的设置试试。

清理缓存

设置完成之后,需要清理缓存,使设置生效。 

清理缓存及内存缓存,如果设置了帖子缓存,还需清理数据库内的缓存(清空相应cache数据库,或者静等缓存失效)
总结,目的就是修改HTTP头改成HTTPS。

至此,Discuz https启用成功,当然,在访问某些页面的时候,可能会打上叉。因为页面中加载了其他http内容。可能是统计代码、QQ分享代码、QQ秀头像等,这部分服务暂时没有提供https协议,因而无法启用。只能等待Discuz进一步支持https。

关于如何给Discuz! X3.1/3.2 开启https问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何给Discuz! X3.1/3.2 开启https

本文链接: https://www.lsjlt.com/news/238697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何给Discuz! X3.1/3.2 开启https
    如何给Discuz! X3.1/3.2 开启https,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。教你如何给 Discuz! X3.1/3.2 开启https(SSL)支...
    99+
    2023-06-04
  • 如何给站点开启https和http2
    这篇文章主要为大家展示了“如何给站点开启https和http2”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何给站点开启https和http2”这篇文章吧。 ...
    99+
    2022-10-19
  • cdn如何开启https
    在cdn中开启https的方法:1.申请ssl证书;2.进入cdn管理控制台;3.添加域名;4.选择“https设置”;5.开启https;6.导入CA证书;具体操作步骤如下:首先,需要申请并下载CA证书,备用;进入CDN控制台,在控制台中...
    99+
    2022-10-12
  • 虚拟主机如何开启https
    在虚拟主机中开启https的方法:1.登录虚拟主机控制面板;2.选择主机,点击“管理”选项;3.进入域名绑定页面;4.开启“强制HTTPS加密访问”;具体步骤如下:首先,在计算机中进入主机代理商网站,并登录到虚拟主机控制面板;进入到主机控制...
    99+
    2022-10-23
  • 如何给PHP开启shmop扩展实现共享内存
    小编给大家分享一下如何给PHP开启shmop扩展实现共享内存,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!给PHP开启shmop扩展实现共享内存在项目开发中,想要实现PHP多个进程之间共享数据的功能,让客户端连接能够共享一...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作