Typecho 更换域名,图片无法显示怎么办?

Typecho 更换域名,图片无法显示怎么办?

Typecho 更换域名,图片无法显示怎么办?


标题建议

Typecho 更换域名:批量替换数据库中的旧图片链接


捕获.PNG

正文内容

最近我的博客从 https://fghdz.top/ 迁移到了新域名 https://reimudao.top/。域名换了,但文章里所有图片链接还是旧的,导致图片无法显示。

手动一篇篇改显然不现实。好在 Typecho 数据库结构清晰,直接用几条 MySQL 命令就能批量替换。

操作前必做:备份数据库

mysqldump -u 用户名 -p 数据库名 > backup.sql
⚠️ 无论多熟练,备份都不能省。

替换命令(表前缀为默认的 typecho_)

-- 文章内容中的链接
UPDATE typecho_contents 
SET text = REPLACE(text, 'https://fghdz.top/', 'https://reimudao.top/') 
WHERE text LIKE '%https://fghdz.top/%';

-- 文章标题中的链接(如果有)
UPDATE typecho_contents 
SET title = REPLACE(title, 'https://fghdz.top/', 'https://reimudao.top/') 
WHERE title LIKE '%https://fghdz.top/%';

-- 自定义字段中的链接
UPDATE typecho_fields 
SET field_value = REPLACE(field_value, 'https://fghdz.top/', 'https://reimudao.top/') 
WHERE field_value LIKE '%https://fghdz.top/%';

-- 评论中的图片链接
UPDATE typecho_comments 
SET text = REPLACE(text, 'https://fghdz.top/', 'https://reimudao.top/') 
WHERE text LIKE '%https://fghdz.top/%';

如果出现了一些错误,可以忽略:

-- 自定义字段UPDATE typecho_fields SET field_value = REPLACE(field_value, 'https://fghdz.top/', 'https://reimudao.top/') WHERE field_value LIKE '%https://fghdz.top/%'

如果你的表前缀不是 typecho_,先查一下实际前缀:

SHOW TABLES LIKE '%contents';

修改 Typecho 设置

别忘了改 设置 里的站点地址:

捕获1.PNG

清理缓存

如果启用了缓存插件,记得清空缓存,否则前台可能还是旧链接。

验证是否替换干净

SELECT text FROM typecho_contents WHERE text LIKE '%fghdz.top%' LIMIT 5;

空结果说明一切顺利。

小结

整个操作其实就三步:备份 → 执行 SQL → 改配置。对于图片多、文章多的站点,这种方法比手动编辑高效太多了。


结尾可选补充

如果你也在用 Typecho 并遇到了同样的问题,希望这篇笔记能帮到你。操作前一定一定记得备份数据库!


如果需要我帮你把语气改得更轻松、更技术、或更适合你的博客风格,也可以告诉我。

©版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 共4条

请登录后发表评论