最近网站很多图片不显示了,原先一直用的免费外链的新浪图床,但是新浪图床不让用了,我把所有存放在新浪的图片打包回来,一共20多G,动用其他图床基本上不可能了。
目前新浪图床链接前缀有:wx1/2/3/4、ww1/2/3/4 、 ws1/2/3/4与 tva1/2/3/4 为前缀的节点目前都被限制了。
这里网上总结了几个方法,可以解决外链限制问题,继续使用。
一、解决新浪图床外链不显示方法
1、将图床链接加入以下前缀:
cdn.cdnjson.com
举例:
新浪链接:https://tva1.sinaimg.cn/mw690/d83cce73gy1gy3su0v8emj20dt0sgabp.jpg
加入前缀:cdn.cdnjson.com/tva1.sinaimg.cn/mw690/d83cce73gy1gy3su0v8emj20dt0sgabp.jpg
即可正常显示:
二:其他新浪图床外链前缀
https://i0.wp.com/(图片地址要掉 https://)
https://i1.wp.com/(图片地址要掉 https://)
https://i2.wp.com/(图片地址要掉 https://)
https://i3.wp.com/(图片地址要掉 https://)
https://cdn.cdnjson.com/
https://cdn.cdnjson.com/pic.html?url=
https://cdn.ipfsscan.io/weibo/去掉微博图片链接中域名部分后的链接
百度1:
https://image.baidu.com/search/down?url=图片地址
百度2:https://gimg2.baidu.com/image_search/&app=2020&src=图片地址(图片地址要去掉 https://)
(缺点:存在个别地区可能无法正常展示图片,比如我进入西藏境内访问这些图片时就无法正常展示,一度以为是微博又升级了,全局代理时是正常的。
使用大多数浏览器直接访问这个链接会是下载图片的提示,而不是直接显示出图片。)
没有等号的不加https://
https://cdn.cdnjson.com/tva1.sinaimg.cn/mw690/d83cce73gy1gy3su0v8emj20dt0sgabp.jpg
有等号的需要https://
https://cdn.cdnjson.com/pic.html?url=https://image.baidu.com/search/down?url=https://tva1.sinaimg.cn/mw690/d83cce73gy1gy3su0v8emj20dt0sgabp.jpg
三:修改UA解决办法
解决方案:
1、自定义UA:UA用你原来的,在UA字段里再加一个(Baidu; P1 8.0.0)字段就行。
2、使用php的curl模拟ua
四、META标签
在网站的<head>标签内添加一行声明referrer的规则
<meta name="referrer" content="same-origin">
<meta name="referrer" content="no-referrer" />
五、IMG标签
既然是图片资源,那么在HTML5中的img标签有一个referrerpolicy的属性,可以显示声明referrer规则,所以在图片标签中加入一个属性即可
<img src="https://image.baidu.com/search/down?url=https://wx4.sinaimg.cn/large/006WvzUFly4g2fbc9ojcbj30j60auq3j.jpg" referrerpolicy="no-referrer">
六、Nginx反向代理
反向代理就是一种,代理请求的方式,相当于是,自己的服务器去访问图片,然后将图片转发给用户
如果您使用的是宝塔服务器面板,那么可以如下配置:
同时记得开启缓存,时间越大越好(避免频繁请求)
七、总结
以上方法可以初步简单的搞定新浪图片不能外链显示到其他网站的原理,其基本原理就是新浪并未禁止这些网站域名外链。
暂无评论内容