你想要的这里都有
每天看一看总有新东西

微博图床防盗链导致全站图片失效:我的应急修复与长期方案(含 s.php)-凯发官网k8

经验秘籍:typecho 数据库 批量修改文章内容typecho网站域名更换和封面图片更换-哎呦不错往前方资源网

最近微博图床防盗链策略收紧,导致我站里大量图片(尤其是 sinaimg.cn)直接失效。本文记录一次完整修复过程,方便以后再遇到同类问题时快速恢复。

一、问题现象

  • 文章封面和正文图片突然大量挂掉
  • 直接访问微博图片链接经常打不开
  • 给链接前面加 https://i1.wp.com/ 有时能显示,但速度偏慢

二、根因分析(为什么会挂)

微博图床(sinaimg.cn)开启或加强了防盗链校验。浏览器直接从你的站点请求这些图片时,referer/访问路径不符合规则,就会被拦截。

本质上不是 html 写错,而是外链图床策略变化。

三、几种常见修复方案对比

1)i1.wp.com 前缀中转(临时可用)

把:

https://tva1.sinaimg.cn/...

改成:

https://i1.wp.com/tva1.sinaimg.cn/...

优点:改动简单
缺点:速度一般,稳定性受第三方策略影响

2)s.php 做 302 跳转到搜狗 cdn(我最终采用)

访问:

/s.php?u=微博原图url

s.php 返回 302 到:

https://img01.sogoucdn.com/net/a/04/link?...

优点:快、实现简单
缺点:依赖第三方跳转链路,偶发不稳定

3)s.php 服务器代理输出图片(最稳)

php/curl 服务器端拉取图片后直接输出 image/*

优点:显示更稳
缺点:更吃服务器带宽和性能

四、我最终使用的 s.php(纯 302、无缓存、简单快速)

把文件放在网站根目录(与 index.php 同级),文件名 s.php


五、文章里怎么写图片

把原图:


改为:


例如:


六、快速验收步骤(2 分钟)

  • 访问 https://你的域名/s.php,应返回:missing u
  • 访问 https://你的域名/s.php?u=微博图片url,应 302 到 img01.sogoucdn.com 并显示图片
  • 把这条 url 放进文章 ,前台刷新检查显示

七、坑

坑 :以为“地址栏能打开”就等于“文章里一定显示”

不完全等价。地址栏直开和 子资源加载,可能被不同策略影响(referer/cdn/waf)。

 

八、批量替换(把旧的 i0.wp.com 改成 s.php

先备份数据库!
下面给两个版本:typecho 和 wordpress。

a. typecho(我实际用的)

update 
typecho_contents
 set 
text
 = replace(
text
,'旧域名地址','新域名地址');
update 
typecho_fields
 set 
str_value
 = replace(
str_value
,'旧域名地址','新域名地址');

b. wordpress(给 wp 用户)

start transaction;
update wp_posts
set post_content = replace(
  post_content,
  'https://i0.wp.com/',
  'https://你的域名/s.php?u=https://'
)
where post_content like '%https://i0.wp.com/%'
  and post_content like '%sinaimg.cn%';
update wp_postmeta
set meta_value = replace(
  meta_value,
  'https://i0.wp.com/',
  'https://你的域名/s.php?u=https://'
)
where meta_value like '%https://i0.wp.com/%'
  and meta_value like '%sinaimg.cn%';
commit;

注意:如果你的 wp 表前缀不是 wp_,请改成实际前缀。

九、长期建议(避免再次被动)

  • 新图尽量不要继续依赖微博图床
  • 逐步迁移到自有对象存储(oss/cos/r2 等) cdn
  • s.php 仅作为历史资源过渡方案
  • 定期抽查文章封面与正文图片可用性

十、结论

这次故障的核心不是程序崩了,而是外链图床策略变了。

  • 应急恢复:s.php 302 跳转方案,最快上线
  • 稳定优先:后续考虑自建图床,逐步迁移
  • 运维关键:批量改库前必须备份,可回滚才安全
未经允许不得转载:凯发官网k8 » 微博图床防盗链导致全站图片失效:我的应急修复与长期方案(含 s.php)
分享到

你想要的这里都有

每天看一看总有新东西

谢谢你的好意,我心领了。

支付宝扫一扫

微信扫一扫

网站地图