腾讯云服务器优惠活动华纳云香港服务器

新浪微博开启防盗链导致博客引用图片失效怎么办?

最近很多站长反馈说客上的图片引用了新浪微相册,最近两天突然发现文章中的图片无法显示。浏览器右键“查看图片”显示:

403 Forbidden
You don't have permission to access the URL on this server.
Powered by Tengine

而复制图片链接,直接在浏览器中打开,又可以看到图片,这是这个什么防护机制呢?估计应该是开启了所谓的防盗链功能,而且这个情况只有电信和移动网络是这样,联通貌似正常。这样的话,除了将图片变成本地化(PS:如想把图片本地化请参考『新浪微博图床防盗链后个人博客上的图片如何本地化?』),或将图片转移第三方存储空间之外还有什么办法呢?下面提供一种临时的解决方案,具体做法就是在当前主题头部模板 header.php 文件的最后一个<meta> 标签下面添加以下代码:

<meta name="referrer" content="no-referrer">

成功添加这个标签后,博客上所引用的新浪相册图片就可以正常显示了。

新浪博客已正式宣布“相册”功能下线(点此了解详情),相册导出功能开放到 2019 年 7 月 31 日 24 时,建议大家要及时将新浪相册的图片导出,若想批量导出新浪博客相册的图片到本地的可以参考『新浪微博图床防盗链后个人博客上的图片如何本地化?』和『批量将新浪博客相册图片导入 WordPress 本地教程

但上面的方法只解决了前端的图片显示,后台编辑文章时还是看不到图片,最终解决方法,将下面代码添加到当前主题 functions.php 函数模板中:

add_action('wp_head', 'zm_admin_referrer');// 前端添加 referrer 标签
add_action('admin_head', 'zm_admin_referrer');// 后台添加 referrer 标签
function zm_admin_referrer(){
echo'<meta name="referrer" content="no-referrer" />';
}

上面代码是通过 WP 钩子分别在前端和后台头部自动添加<meta name="referrer" content="no-referrer" />标签。

不过貌似并不是所有浏览器都支持这个标签,比如 IE,不过也多亏微软自己都把 IE 抛弃了,国内那些所谓双核浏览器,在极速或者高速模式下也正常显示。至于这个“nofollow、noopener 和 noreferrer 标签的区别?”标签的作用是什么,大概意思就是说“所有请求不发送 referrer”,更具体的介绍请自行百度学习。

以上内容整理自@知更鸟

本文地址:https://boke112.com/post/6714.html

赞 (0) 打赏
版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu