让多说完美支持https

原理大致类似于上篇《解决HTTPS下七牛插件从http地址调用JS库而被拦截的问题》文章。启用HTTPS后,在Chrome上审查元素发现有链接被拦截,且安装多说插件后不能显示头像,甚至不能显示评论框!为此多少站长忍痛放弃HTTPS!

几经周折才发现(在此感谢quericy),多说请求的头像图片链接将http转换为https多说的ds.cdncache.org默认是http的,而https会被跳转到ds.duoshuo.com,而导致证书和请求链接不符,默认被浏览器拦截。不过,ds.duoshuo.com是支持https但是在http下会返回502的,于是我们判断下请求头是https就把ds.cdncache.org替换成ds.duoshuo.com。再加上sinaimg-cdn已经支持https了,所以目前已经可以对多说的所有头像都做https的替换。

因此需要我们动手修改代码了(为了加密我们也是蛮拼的)。

大致原理与过程:首先下载embed.js,并修改为https链接,然后重新上传至云端,获取外链后,再从WordPress.php文件中修改多说插件引用embed.js链接的代码,最后重新上传至服务器即可。值得注意的是,此过程中,由于重新打包上传了脚本,我们实际上把多说核心脚本进行了加速处理。

首先,找到wp-content/plugins/duoshuo/里的WordPress.php,找到里面引用的embed.js的路径,把它下载下来,然后在embed.js里(使用Notepad++工具的插件JSTool的JSFormat功能格式化java文件,别说你不用Notepad++),找到下面的代码:

替换为:

保存为embed2.js(防止七牛空间文件名冲突),上传至你的云端,然后获取文件文件外链。

回到WordPress.php文件,注意,有两处路径需要替换。替换这两处的路径:

保存上传到你的服务器。

刷新下博客页面,然后查看网页源代码,如果显示

而且多说评论框区域一切正常,加载速度明显很快,且没有出现blocked的元素,那么恭喜您,多说社会化评论框核心脚本embed.js加速以及HTTPS修改就完全成功了!

发布者

Javen

一個喜歡折騰的自由散漫又帶有幽默感的處女座完美型浪漫主義豪放派人士。

《让多说完美支持https》有5个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注