You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加Cloudflare SSL后WordPress wp-admin页面无法加载求助

WordPress + Cloudflare SSL 问题原因解析

一、修改HTTPS后wp-admin无法访问的核心原因

  • Cloudflare SSL模式不匹配:如果使用了Cloudflare的「灵活SSL」模式,Cloudflare与你的服务器之间是HTTP通信。当你将WordPress地址改为HTTPS后,后台会强制要求HTTPS访问,但服务器实际收到的是HTTP请求,会触发循环重定向或请求验证失败,导致wp-admin无法打开。
  • HTTPS请求头未被识别:Cloudflare会通过HTTP_X_FORWARDED_PROTO头告知服务器当前是HTTPS请求,但WordPress默认未开启对该头的识别。这会让WordPress误以为处于HTTP环境,后台加载的CSS、JS等资源仍用HTTP链接,浏览器的混合内容拦截机制会阻止这些资源加载,最终导致后台页面无法正常访问。

二、HTTP环境下附件图片无法显示的原因

  • 混合内容拦截:在HTTPS环境下上传图片时,WordPress会将图片永久URL以HTTPS格式存入数据库。切回HTTP访问前端时,这些HTTPS图片属于「混合内容」(HTTP页面加载HTTPS资源),现代浏览器为安全会主动拦截这类请求,导致图片无法显示。
  • 数据库URL未同步更新:你曾临时将站点地址改为HTTPS,数据库中部分资源(如附件、主题/插件资源)的URL已被替换为HTTPS。改回HTTP后未批量更新这些URL,因此HTTP环境下加载这些HTTPS资源会被拦截。

快速解决建议

  1. 调整Cloudflare SSL模式为「完全SSL」或「严格SSL」(确保你的服务器已部署有效SSL证书,自签证书可适配完全模式)。
  2. 在wp-config.php文件中添加以下代码,让WordPress识别Cloudflare的HTTPS请求头:
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}
  1. 确认WordPress的「WordPress地址(URL)」和「站点地址(URL)」均为HTTPS后,在phpMyAdmin中执行SQL语句批量更新数据库中的旧URL:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://example.com', 'https://example.com');

(注意替换wp_为你的数据库表前缀,example.com为你的实际域名)

内容的提问来源于stack exchange,提问作者Shahpari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 18:37:48