http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程

Discuz x3 开启cdn和https后链接修改教程

开启支持https主要需要修改一下几个地方

1. 、查找修改文件discuz_application.PHP :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;

2、查找修改文件avatar.php :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、除去非 HTTPS 内容避免提示”不安全内容“Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段 JS 加载脚本删除就行。非楼主层如果有点评,那么点评者头像不是 HTTPS 开头,也需要修改一个文件来适配: template/default/forum/viewthread_node_body.htm (约 180 行),搜索 div class="psta vm">,将下面一行注释掉或者删除。打开浏览器,使用开发者工具或者查看源码逐一排查加载的非 HTTPS 资源并修改。

4、后台设置的修改完善在后台还有一些设置,可能会干扰 https 的使用。

后台 >全局 > 站点 URL ,改为 https 开头的

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

UCenter 后台 > 应用管理 > 应用的主 URL ,修改为 https 开头。修改后可能会显示通讯失败,如果 UC 和论坛程序安装在同一机器,此失败可无视,实测可以和 UC 正常通讯不影响(测试是否正常通讯程序的 Bug ),如果 UC 和论坛程序不在一台机器上,有可能不能通讯。 另外在 后台 > 全局 > 域名设置 中的一些设置也可能使 https 失效,如果更新缓存后论坛默认连接还是 HTTP ,请删除 后台 > 全局 > 域名设置 > 应用域名 > 默认 里面的默认域名(一般去 forum.php 尾巴这里会有内容,为了 HTTPS 请删除)。

5、模板的调整主要在模板的 foot.HTML 以及 header.html 等文件中,使用工具逐一排查模板文件中写死的 HTTP 链接,修改为 HTTPS 。

6、解决QQ互联的问题 (自己可以先测试QQ互联有没有问题,我的discuz3.2的没有问题,所以就跳过这一步骤)

首先升级QQ互联插件,最低版本要求是 1.18.2,如果升级后依然不行,需要修改回调 URL 为非 HTTPS 的:

找到:

source/plugin/qqconnect/connect.class.php 大约41行

在common_base() 函数里面,将 $_G[‘siteurl’] 直接硬编码为 你的http的URL ,首先修改callback_url,如果不行,将所有包含connect.php 的 URL 全部替换。

7、将论坛帖子中网站的URL改成https格式的。

会员在发帖的过程中,很可能调用了本站别处的帖子或连接,而这个链接肯定是http的,所以需要将这些链接全部修改成https格式的:

执行SQL语句,可以在DZ后台,或者phpmyadmin中都可以:UPDATE pre_forum_post SET message=REPLACE(message,’http://旧网址.com’,’https://新网址.com’);

复制代码

8、修改模版各处http://为https://

这里为模版文件较多的用户提供一个简单的批量的https://模版替换教程(开启伪静态的可用)

打开source/function/function_core.php

搜索$content = output_replace($content);

在下面加入$content = str_replace('http://www.xxxx.com','https://www.xxxx.com',$content);

如果你有多个二级域名,可以加入

$content = preg_replace('http://(.*?)xxxx.com','https://\1xxxx.com',$content);

感谢葱子博客以及一些博主提供的第二部分说明。真担心审核不通过!

第三步discuz网站实现绿标以及去掉不安全脚本有一个很坑的就是我的全局—域名设置—应用域名,这里填写了以前的域名,现在域名是https了,所有用这个就不行了,所以导致页面一直有重定向的问题,解决方法应用域名留空。

网站现在可以访问还是灰色的https,这其中就是有http的图片、CSS、JS等问题,外链好像是没有关系的,所以需要一一排查,我用火狐(版本)firebug排查发现很多问题。(要说明现在firebug停止更新了),所以要用firebug排查就需要火狐版本低一些,我的话很多啊!

具体的解决问题(1)、https访问时出现http调用外部链接的均提示有不安全脚本。此时我们应当找到调用了哪些外部的http链接的JS或css

(2)、利用火狐firebug查看(如果有广告或360、百度联盟、谷歌联盟等广告的先关闭,还有包括百度分享也是不支持https的),我们找到如下四个外部调用的文件http://pc1.gtimg.com/js/jQuery-1.4.4.min.js

http://s.pc.qq.com/discuz/css/style.css

http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1

https://openapi.guanjia.qq.com/fcgi-bin/getdzjs?cmd=urlquery_gbk_zh_cn   无效链接

(3)、接下来就一个一个的解决吧,第一个JS是因为DZ自带的电脑管家网址保镖插件造成的,进入后台关闭该插件即可。第二个是个调用了外部CSS导致的!这个怎么办呢?原理是把外部的CSS下载到本地来调用吧。下载CSS保存在自己的服务器网站目录里,修改\source\plugin\pcmgr_url_safeguard\pcmgr_url_safeguard.class.php下的:// $jsscript .= '';

复制代码

为你的:// $jsscript .= '';

(注意:修改后的地址你要保证你下载该外部CSS到你的网站目录,同时把style.css文件里调用的外部图片更换成本地图片路径)。至此,第二个问题解决。第三个是DZ漫游应用,这段代码是强制输出的,根本没有加判断。那么我们把它注释掉即可找到/source/function/function_core.php$tipsService = Cloud::loadClass('Service_DiscuzTips');

$tipsService->show();

好了!第四个问题是一个无效链接。忽略不管(4)、JS容错。程序员在开发时会或多或少对浏览器的兼容考虑不周,这时候为了正常使用https我们得写个JS容错命令。(如果ie报错,并导致js无法顺利执行完毕,就必须找出报错的问题所在了,这才是最终的解决方法.)。在头部加入以下代码:

function SlyarErrors() {

return true;

}

window.onerror = SlyarErrors;

至此。全部解决。

至此你已经可以全站cdn加https访问了,但是还是有一些帖子页面编辑的时候复制了别的http的图片,所以需要慢慢替换了,我也不知道有什么好方法替换图片,反正是官网不是很大,很快替换好

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值