ZBlogCMS 搬家之后图片无法加载怎么处理

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-07 22:15 ·1 浏览 ·0 回复

学完这篇,你能自己把 ZBlog 搬家后图片不显示的问题定位到具体原因,并用 SQL 替换、目录权限、配置修正这三招把图片全部救回来。

ZBlog 搬家后图片打不开,九成以上不是图片文件丢了,而是「数据库里存的还是旧地址」或「新服务器的路径/权限对不上」。下面按排查顺序走一遍。

第一步:用浏览器确认图片到底错在哪

这一步决定后面往哪个方向修,先别急着改数据库。

用 Chrome 打开一篇配图不显示的文章,按 F12 打开开发者工具,切到 Network(网络)标签,按 Ctrl+F5 强制刷新。在过滤框里输入 jpg 或 png,看这些图片请求:

  • 状态码 404:图片文件不在服务器上,或者路径大小写不对
  • 状态码 403:文件在,但目录权限不够,Web 服务器读不了
  • 状态码 200 但页面还是不显示:多半是 HTTPS 混合内容(Mixed Content),看 Console 标签会有红色警告
  • 请求的域名是旧域名:数据库里存的是绝对地址,需要批量替换

把鼠标放到请求上,能看到完整 URL,这就是你要处理的真实路径。

第二步:替换数据库里的旧域名

这一步解决「URL 里还是旧域名」的情况,改完图片地址立刻指向新站。

打开 phpMyAdmin(宝塔面板里叫「数据库」→ 右侧「管理」,或 phpMyAdmin 独立地址),选中你的 ZBlog 数据库。先用 SELECT 确认有多少条要改,表前缀默认是 zbp_,如果你改过,可以到 zb_users/c_option.php 里看 ZC_DATABASE_TABLE_PREFIX。

SELECT COUNT(*) FROM zbp_post WHERE log_Content LIKE '%旧域名.com%';

确认有数据后,在「SQL」标签页执行替换(把域名换成你自己的):

UPDATE zbp_post
SET log_Content = REPLACE(log_Content, 'http://www.旧域名.com', 'https://www.新域名.com')
WHERE log_Content LIKE '%旧域名.com%';

UPDATE zbp_post
SET log_Intro = REPLACE(log_Intro, 'http://www.旧域名.com', 'https://www.新域名.com')
WHERE log_Intro LIKE '%旧域名.com%';

注意:执行 UPDATE 前一定要先导出备份这张表(导出 → 快速 → 执行),替换是不可撤销的。另外如果旧站同时存在 http 和 https 两种写法,要分两条语句各跑一次。

第三步:改后台的网站域名设置

这一步解决「文章里是相对路径,但后台拼出了旧域名」的情况。

登录 ZBlog 后台,左侧菜单点「网站设置」→「全局设置」,找到「网站域名(ZC_BLOG_HOST)」这一栏。如果里面写着旧域名,改成新域名(要带 https://,结尾不要加斜杠);如果拿不准,直接清空,Z-BlogPHP 1.7 会自动识别当前访问的域名。

注意:搬完家如果后台登录后一直跳回旧域名,或者点任何菜单都跳走,就是这里的问题。可以先直接改数据库:UPDATE zbp_config SET conf_Value='' WHERE conf_Name='ZC_BLOG_HOST';,改完再回后台设置。

第四步:检查 upload 目录是否拷全、权限是否正确

这一步解决 404 和 403。

用 FTP 或宝塔「文件」功能,对比新旧两站的 zb_users/upload/ 目录。这个目录按年月分子目录存放附件,搬家时最容易漏传或中断。

传完后 SSH 登录服务器执行(把路径换成你的站点根目录):

chown -R www:www /www/wwwroot/新站点
find /www/wwwroot/新站点 -type d -exec chmod 755 {} \;
find /www/wwwroot/新站点 -type f -exec chmod 644 {} \;

注意:从 Windows 服务器搬到 Linux 一定要检查大小写。Linux 区分大小写,数据库里写的是 /zb_users/upload/,实际目录如果是 /zb_users/Upload/,浏览器照样 404。用 ls /www/wwwroot/新站点/zb_users/ 核对一下真实目录名。

第五步:处理 HTTPS 混合内容

如果站点开了 https,而数据库或主题模板里还写着 http:// 的图片地址,Chrome 会直接拦截,图片显示为空白。

最省事的办法是第二步的 SQL 再跑一遍,把 http://www.新域名.com 替换成 https://www.新域名.com。另外检查当前主题目录(zb_users/theme/你的主题/template/)里有没有硬编码的 http 图片地址。

第六步:清缓存

改完之后如果还是老样子,按顺序清三处:ZBlog 后台「网站设置」→「清空缓存并重新编译模板」;宝塔面板里清 Nginx/Apache 缓存;浏览器按 Ctrl+Shift+Delete 清除缓存。用了 CDN 的,去 CDN 控制台刷新 URL。

小结

  • 先开 F12 看 Network 状态码,404 查文件、403 查权限、200 不显示查 HTTPS 混合内容
  • 图片 URL 带旧域名 → phpMyAdmin 里 UPDATE 替换 zbp_post 的 log_Content 和 log_Intro
  • 后台「网站设置 → 全局设置 → 网站域名」要改成新域名或直接清空
  • zb_users/upload/ 必须完整拷贝,Linux 下注意目录大小写和 755/644 权限
  • 所有改动前先备份数据库,改完清空 ZBlog 缓存和浏览器缓存
版权声明:本文来自 GJ站长论坛《ZBlogCMS 搬家之后图片无法加载怎么处理》
原文链接:https://www.gj0.com/thread-583.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~