Typecho 迁移域名后,批量替换文章里的图片地址

域名迁移之后常见的一个坑:博客程序设置改了,但文章正文里存的图片地址还是旧域名前缀,全站图片批量失效。一篇一篇手改不现实,直接改数据库里的字符串最省事。

先确定替换规则,别误伤

用 phpMyAdmin 演示,用 Navicat 等数据库工具操作完全一样。动手前先想清楚要替换的片段:比如旧地址是 https://xxxxxxx/image/2023,图片挪到了 https://yyyyyyyy/image/2023/,那么只需要把旧域名后面的 https://xxxxxxx/image/ 批量换成 https://yyyyyyy/image。替换片段里带上 image 目录这一段,是为了防止链接里非图片的地址被一起改掉。

改文章表 typecho_contents

选中 Typecho 的数据库,打开 typecho_contents 表,点 SQL 标签执行下面语句,这条负责文章正文里的图片地址:

UPDATE typecho_contents SET text = REPLACE(text,'旧域名地址','新域名地址');

改字段表 typecho_fields

封面图等存在自定义字段里,再到 typecho_fields 表执行:

UPDATE typecho_fields SET str_value = REPLACE(str_value,'旧域名地址','新域名地址');

验证与兜底

两条语句显示受影响行数不为零,基本就改到位了。回博客翻几篇文章,确认图片能正常加载;执行前记得备份整库,REPLACE 是全表字符串操作,写错参数想回滚只能靠备份。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容