Discuz!启⽤HTTPS问题解决⽅法
Discuz! X 3.4 论坛如何实现全站 https 访问
摘要:在主机开启 SSL 功能后,https 访问倒是正常的,但浏览器上的绿⾊⼩锁并没有出现,⽽且⽹站导航上的链接还是 http 的。
⽹站开启 https 加密访问,现在基本已经成为标配了。之前“中华马⽒⽹”是托管在阿⾥云的虚拟主机上的,⽆法实现 SSL 加密访问,这次迁移到后,可以⼀键开启 SSL 功能。
但在主机开启 SSL 功能后,https 访问倒是正常的,但浏览器上的绿⾊⼩锁并没有出现,⽽且⽹站导航上的链接还是 http 的,显然⽹站的https 访问设置并不完全。
⽹站是⽤ Discuz! X 3.4 Release 20171001 搭建的,这个 php ⽹络论坛程序近⼏年已经,估计没有添加上 https 访问的功能设置。在官⽅论坛上看到了⼀则相关的,按步骤操作后,成功实现绿⾊⼩锁,特介绍给⼤家。
⼀、需要修改3个源⽂件(修改前请记得做好⽂件备份):
1、 source/class/discuz/discuz_application.php (⼤概在第 190 ⾏处)
查: $_G[‘isHTTPS’] = 
这⼀⾏直接修改为: $_G[‘isHTTPS’] = true;
2、 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、template/default/common/header.htm
⼆、完成源代码修改后,还需更改4处⽹站设置。
1、在后台 – 全局 – ⽹站 URL 填写
3、在后台 – UCenter – 应⽤管理 – 点右边的编辑 – 应⽤的主 URL 填写如果点击 UCenter 后出现空⽩,请右击新窗⼝打开。
4、后台界⾯-风格管理,点击更新 CSS 缓存,更新缓存,完成!
三、最后我们再对搜索引擎进⾏⼀些优化:
⽅法⼀:做301跳转(百度推荐)
APache 版本在伪静态规则中添加:
⽅法⼆(站长推荐)
在后台全局 – 站点信息,下⾯的“⽹站第三⽅统计代码”处粘贴以下代码,即可完成搜索引擎已经收录的 http 访问不跳转 https 问题。
<script type=”text/javascript”>
var url = window.location.href;
if (url.indexOf(“https”) < 0) {
url = place(“http:”, “https:”);
place(url);
}
</script>
注意:请不要在全局 – SEO设置-其他-其他头部信息处粘贴代码,这样在帖内不显⽰这段代码的。
⾸先,申请并且配置好服务器ssl证书(阿⾥、腾讯都有免费的,同时都有教程)
配置完毕后需要配置以下⼏处
1.后台,全局,站点URL
2.后台,站长,ucenter设置
3.ucenter,应⽤,编辑
打开source/function/function_core.php
ssl协议未开启的危害搜索
$content = output_replace($content);
在下⾯加⼊
$content = str_replace('','',$content);
如果你有多个⼆级域名,可以加⼊
$content = preg_replace('(.*?)xxx','\1xxx',$content);
通过以上⽅法把http可以完美开启https,但是原来的开启伪静态的⽅法不能正常使⽤,如果还是按原来开seo伪静态的⽅法(
),则会提⽰未登录⽤户访问的链接全不到,还有就是登录⽤户发帖会出现假失败(提⽰发布后,⽹页内容链接不到,后退后,测试发布的内容确实成功发布了),⽬前只有关闭原来开伪静态的⽅法,最后请教⾼⼿留⾔解决⽅法,先谢谢了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。