早在15年五月份百度就宣布全站https并且对https网站支持更友好。但是7个多月过去了,百度站长工具还是几乎全系列不支持https网站,包括百度分享、站内搜索、sitemap自动提交……

巧用七牛CDN解决百度分享问题

参考了yaozhen's blog 原文链接:https://iyaozhen.com/use-qiniu-image-storage-allow-baidu-share-support-https.html

因为百度分享的核心js代码如下:

<script>
	with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion='+~(-new Date()/36e5)];
</script>

可以看到引用了一个http://bdimg.share.baidu.com/static/api/js/share.js的链接,这在https网站中是不允许的。所以执行到这里浏览器就会弃用这个脚本,自然无法出现分享按钮。

一个方法是可以直接把所有需要调用的js文件都保存到你自己的服务器上然后手动修改地址,另一个方法是利用七牛cdn的镜像存储功能:

20150817003746

不过百度还有一个统计数据的功能,主要是靠http://nsclick.baidu.com/v.gif,需要统计的参数和值都以 GET 参数的形式附在链接后面。然后后端再清洗请求日志或者获取请求的时候就直接把数据入库了。但这个统计小图片也不支持 HTTPS。没办法,只能去掉了,方法也很简单,static/api/js/trans/logger.js 文件为空就行(上传个空文件、占个位)。到此才算大功告成。

感想

百度分享最终效果见本文,虽然百度分享成功了,但是当我兴冲冲的想把百度搜索、百度链接自动提交添加到网页上的时候才发现这些没法本地化的东西真的似乎无解了……因为百度站内搜索需要加载的znsv.baidu.com这些都没法https坊问。刚才才发现百度观测也无法观测https站点,因为添加以后他会观测这个网址http://wangchenyu.net.cn:443,实力卖萌。

虽然百度对https网站说着更“喜欢”收录,但是不知道百度是懒了还是怎么得,除了百度统计,所有的站长服务都没有支持https网站。看来百度和谷歌的差距还是很大。