FGHRSH 的博客

Please wait...

启用全站 HTTPS 并解决多说绿锁

最近很多博客都上了HTTPS,但是CDN一直不支持,感觉UPYUN的有点慢,

突然发现现在阿里云CDN支持HTTPS了,果断配置上试试233,噫,绿锁好像挺高端的

然后我点开了一篇博文,另一个麻烦的问题来了——多说,啥都不用说了,下面贴方法=-=


到后台多说插件文件夹,打开duoshuo.class.php,搜索 embed.js

替换为 https://博客网址/多说插件文件夹路径/embed.php


在多说文件夹下新建个:embed.php,用于替换多说embed.js,源码如下:

<?php
$timeout = stream_context_create(array(
	'http' => array('timeout' => 1.0)
));  
header('Content-Type:text/javascript');
//从多说服务器获取最新的embed.js,超时则使用本地embed.js
if(($data = file_get_contents("https://static.duoshuo.com/embed.js", 0, $timeout)) == NULL) {
	echo $data = file_get_contents(dirname(__FILE__)."/embed.js");
} else  {
	//替换多说头像
	$data = str_replace("e.avatar_url","'https://www.fghrsh.net/zb_users/plugin/duoshuo/img-cache.php?src='+e.avatar_url",$data);
	$data = str_replace("nt.data.default_avatar_url","'https://www.fghrsh.net/zb_users/plugin/duoshuo/img-cache.php?src='+nt.data.default_avatar_url",$data);
	//替换多说评论输出
	$data = str_replace("s.message",'((s.message.indexOf("src=\"http:\/\/") == -1) ? s.message : ((document.location.protocol == "https:") ? s.message.replace(/src=\"http\:\/\//, "src=\"https://dsimg.fghrsh.net/proxy/") : s.message))',$data);
	//替换多说自带表情输出
	$data = str_replace("http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/","https://dsimg.fghrsh.net/proxy/img.t.sinajs.cn/t35/style/images/common/face/ext/normal/",$data);
	echo $data;
}
?>

为了防止多说服务器获取超时,可以访问embed.php,把内容保存为embed.js放在多说插件文件夹

我的多说反代服务器加了防盗链,以防止被滥用浪费流量,需要使用我服务器的可以评论留言,我加上你的域名


在多说文件夹下新建个:img-cache.php,用于替换http链接为https,源码如下:

<?php
$src = $_GET['src'];
$src = preg_replace('/http:\/\/.+\.gravatar\.com/','http://cn.gravatar.com',$src);
$timeout = stream_context_create(array(
    'http' => array('timeout' => 1.0)
));
$data = file_get_contents($src, 0, $timeout);
header('Content-Type:image/png');
header("Cache-Control: max-age=2592000");
//获取图片并输出,不存在或不是图片则输出none.jpg
//你需要自行找个无头像时输出的图片,改名为none.jpg和本程序放在一起
if(imagecreatefromstring($data)) {
	echo $data;
} else {
	echo file_get_contents(dirname(__FILE__)."/none.jpg");
}
?>

img-cache.php用于缓存头像图片,dsimg服务器缓存的是评论内容图片和评论框自带表情图片


nginx反代服务器架设:

    server {
        listen 443 ssl;
	server_name  dsimg.fghrsh.net;

	ssl ……

	location ~ "^/proxy/(.*)$" {
            resolver 223.5.5.5;
            proxy_pass http://$1;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            expires 7d;
        }
    }


最后,多说图片不需要每次访问都获取一次,有CDN的可以加上缓存规则(以阿里云CDN为例):

文件夹路径:/多说文件夹/embed.php   缓存时间:7天

文件夹路径:/多说文件夹/img-cache    缓存时间 :7天

域名:dsimg.fghrsh.net   文件夹路径:/   缓存时间:3年


版权声明:

上述源码收集自互联网,各种整合By:FGHRSH

感谢 liwanglin12 提供替换多说自带表情方法=-=

本文标题:启用全站 HTTPS 并解决多说绿锁
本文链接:https://www.fghrsh.net/post/42.html
作者授权:除特别说明外,本文由 fghrsh 原创编译并授权 FGHRSH 的博客 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

网友评论68

  1. 呵呵嗒 2016-06-30 22:29:59 回复

    我能笑你一个月

  1. 胖瓜博客 2016-03-05 17:37:53 回复

    人呢[给力]

    1. fghrsh 2016-03-05 20:27:10 回复

      今天出去图书馆看书了=-=

      1. 胖瓜博客 2016-03-06 19:32:51 回复

        唉,不弄了,头痛了,谢你了

  1. 胖瓜博客 2016-03-05 03:21:07 回复

    你的dsapi又是什么鬼,能说说嘛,我的网站老是有感叹号,没你的这么好看

    1. fghrsh 2016-03-05 20:36:18 回复

      你的站,用上面的php替换多说自带表情输出即可,如果需要用我的服务器,可以回复下,我更新下防盗链;还有http://bdimg.share.baidu.com/static/api/js/share.js,把它本地化下即可

    1. fghrsh 2016-03-05 20:30:35 回复

      话说你的博客我这边打不开。。广州电信,开了SS才能看到

    1. fghrsh 2016-03-05 20:26:52 回复

      dsapi是反代 api.duoshuo.com 的,api.duoshuo.com自身也是支持https的,他只有联通线路,我做了cdn加速而已

  1. fghrsh 2016-02-15 14:48:32 回复

    =-=

  1. Kenvi 2016-02-14 09:55:58 回复

    自带评论大法好,辣鸡多说

    1. fghrsh 2016-02-15 14:50:23 回复

      感觉多说的登陆功能方便点,修改所有接口全部上CDN加速速度还是挺好的233

  1. Aaron 2016-02-12 15:14:17 回复

    QQ邮箱订阅好像不支持。。

  1. fghrsh 2016-02-01 17:01:12 回复

    我凑=-=这么大

    1. liwanglin12 2016-02-01 18:20:31 回复

      哈哈哈哈O(≧∇≦)O欢迎使用LWL图床(*°∀°)=3https://img.lwl12.com

  1. 超人社区 2016-02-01 16:50:39 回复

    通用版代码可解?

    1. fghrsh 2016-02-01 16:58:08 回复

      通用是自己整合多说?那自己把embed.js调用路径改为本地embed.php即可,程序文件夹放哪都可以,根目录也行

      1. 超人社区 2016-02-02 13:28:39 回复

        www.69dai.cn 求授权,另外博主好人发个反代多说的教程...请原谅小白~

        1. fghrsh 2016-02-02 19:14:11 回复

          已添加,反代多说?你说上面的nginx反代服务器架设?这个是修改nginx.conf的

          1. 超人欧巴 2016-02-02 19:52:30 回复

            谢谢博主大好人~

    1. fghrsh 2016-02-01 16:56:15 回复

      找到你博客多说文件夹,用notepad++打开所有php,搜索embed.js,改为本地embed.php即可

  1. liwanglin12 2016-02-01 14:27:07 回复

    直接改JS的我路过

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项