请教各位大侠,Discuz! X3.5如何真正实现全站HTTPS?
请教各位大侠,Discuz! X3.5如何真正实现全站HTTPS?
程序版本:Discuz! X3.5 Release 20230520 UTF-8
服务器系统:Linux
PHP版本:PHP v7.2.15
MySQL版本:5.7.25-log
SSL证书已申请,并配置成功,目前出现的问题是,论坛页面有的是绿标HTTPS,有的不是,我自己已经先行做过多次排查了,发现主要原因是部分页面存在HTTP链接,例如:
1、首页因为有别的论坛的友情链接,部分友情论坛没有申请SSL证书,还是HTTP链接,导致首页不是绿标HTTPS;
2、作为一个存在时间比较长的论坛站点,部分帖子内容带有的链接很多是HTTP,毕竟HTTPS是近几年才较为普及的。
我自己搜寻了相关解决办法,其中:
1、打开:source/function/function_core.php
2、搜索:$content = output_replace($content);
3、在下面添加:$content = str_replace('http://','https://',$content);
此方法将网站会员发帖和风格里面只要有http://,都会自动成https://,确实是生效了。
但是后续导致错误产生:
1、点击右上角用户头像,进入用户个人中心,页面变为了空白页面;
2、点击首页论坛版区的最新发帖,帖子内容不显示,页面也是变成了空白页面。
将function_core.php备份还原后,空白页面就恢复了,但是部分页面因为含有HTTP链接,还是无法实现绿标HTTPS,问题就回到了原地。
我看到过有比较老的论坛,页面即使包含了HTTP链接,也不影响论坛的HTTPS绿标。
所以请教各位大侠,这个代码问题究竟出在哪里?能否修复使用?或者Discuz! X3.5有什么其他的方法,可以真正实现全站HTTPS?谢谢。