WordPress重装后仅HTTPS可访问 部分图片404如何修复
WordPress切换HTTPS后HTTP无法访问、图片404通用修复方案
该问题有成熟通用修复方案,故障本质是站点切换HTTPS后,数据库内留存的硬编码HTTP链接、站点基础配置未同步更新,且缺少协议跳转规则,才会出现手动替换图片链接为HTTPS即可正常访问的现象,问题表现参考:
按以下顺序操作即可完整修复:
1. 修正站点基础URL配置
优先固定站点根地址,避免后续链接生成时继续输出HTTP协议:
- 能正常登录后台的场景:进入「设置-常规」页面,将「WordPress地址(URL)」「站点地址(URL)」的前缀从
http://修改为https://,保存设置 - 无法登录后台的场景:直接编辑站点根目录的
wp-config.php文件,在文件末尾加入以下配置(替换为你自己的域名):
define('WP_HOME', 'https://你的实际域名'); define('WP_SITEURL', 'https://你的实际域名');
2. 批量替换数据库内的硬编码HTTP链接
文章内容、附件元数据、主题/插件配置中存储的旧HTTP图片链接是导致404的核心原因,不要手动逐篇修改,用以下两种安全方式批量替换:
- 服务器命令行方式(效率最高,推荐):安装WP-CLI工具后,在站点根目录执行替换命令,注意必须携带
--skip-columns=guid参数避免破坏RSS等关联数据:
wp search-replace 'http://你的实际域名' 'https://你的实际域名' --skip-columns=guid
- 可视化插件方式(无服务器权限时使用):安装启用「Better Search Replace」插件,在搜索栏填入
http://你的实际域名,替换栏填入https://你的实际域名,勾选全部数据表,先开试运行确认匹配条目正常,再取消试运行执行正式替换,完成后即可卸载插件。
注意:执行任何数据库替换操作前,必须先备份完整数据库,避免操作失误导致数据损坏。
3. 配置HTTP到HTTPS的强制跳转,解决HTTP无法访问的问题
根据你使用的Web服务选择对应配置:
- Nginx环境:在监听80端口的站点配置块中加入301跳转规则,修改后重启Nginx服务:
server { listen 80; server_name 你的实际域名; return 301 https://$host$request_uri; }
- Apache环境:编辑站点根目录的
.htaccess文件,加入以下跳转规则:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
4. 补充兼容配置避免后续出现混合内容错误
编辑wp-config.php文件,加入以下配置强制后台、登录态走HTTPS,同时兼容反向代理/CDN场景的协议识别:
define('FORCE_SSL_ADMIN', true); if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }
所有操作完成后,清空站点缓存、CDN缓存(如果使用了CDN),再测试页面访问、图片加载即可恢复正常。
内容的提问来源于stack exchange,提问作者Alexandru Andrei
相关产品推荐
相关产品推荐

