Always been imitated
Never surpassed

discuz升级https访问排版错乱处理方法

在 Discuz X3.2 中,支持了https,现在SSL也有免费版了,很多站长部署后出现前后台访问页面出现排版异常,原因是https全站要求使用https链接调用,但是程序css,js等仍使用http调用造成的

处理方案1: 安装插件

登陆网站后台,插件中心,搜索:克米设计-HTTPS转换, 安装后启用即可

处理方案2:修改代码

1.1 Discuz采用 $_SERVER[‘HTTPS’] 的方式来判断SSL,但是因为我的VPS架构问题(nginx+php-fpm),无法采用这种方式识别,所以需要对Discuz程序进行一些调整(使用 $_SERVER[‘SERVER_PORT’] 来判断)。

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;

uc_server/avatar.php (约第13行处):

查找:

1define('UC_API'strtolower(($_SERVER['HTTPS'] == 'on' 'https''http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));

修改为:

1define('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。

1.2后台设置

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

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

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

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

赞(0)
@请尊重原创,未经允许不得转载:军S小站 » discuz升级https访问排版错乱处理方法

智慧源于勤奋,伟大出自平凡

联系我们

© 2019 军S小站   ©备案号: 蜀ICP备17043886号-2    网站地图   友情链接