HTTPS下部署多说评论

经过短暂的使用,多说对HTTPS提供了简单的支持,但并不全面,暂时发现还有以下三种情况没有得到解决:
1.默认的头像地址
2.评论中的表情图片地址
3.输入框的表情选择框中的图片地址
下面将逐步解决以上3种情况。

修改多说公共JS代码

找到如下这一行:

1
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';

替换为:

1
ds.src = '/js/embed.js';

本地化embed.js

在embed.js中找到:

1
'+_(Z.avatarUrl(e,t))+'

替换为

1
/cdncache.php?url='+_(Z.avatarUrl(e,t))+'

HTTP转HTTPS的php代码

在source目录添加文件cdncache.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
//HTTP图片转HTTPS(防盗链) YateSun 2016.03.16
if(!(isset($_SERVER['HTTP_REFERER'])&&parse_url($_SERVER['HTTP_REFERER'])['hosts']='yatesun.com')){
die();
}
$url=urldecode($_REQUEST['url']);
if(preg_match("/^http/",$url)){
$opts = array('http'=>array('method'=>'GET','timeout'=>10));
$result = file_get_contents($url,FALSE,stream_context_create($opts));
if($result){
header("Cache-Control:public;maxage=604800");
header('Content-type: image/png');
echo $result;
}else{
header("HTTP/1.1 404 Not Found");
}
}else{
header("HTTP/1.1 403 Forbidden");
}
?>

不显示多说版权信息

http://yatesun.duoshuo.com/admin/settings/中,选择自定义CSS,加入:

1
#ds-thread .ds-powered-by{display:none !important;}

评论内容中表情及图片

http://yatesun.duoshuo.com/admin/settings/中,选择评论框选项,取消勾选:
1.允许插入表情
2.允许插入图片(需要同时开启下面的解析html代码)