frankenphp 通过 caddy 自动完成 https 全流程,wordpress 无需插件,只需正确配置 url 和 wp-config.php 中的 https 常量,并在 caddyfile 中配置 try_files 或 rewrite 支持 wordpress 伪静态。

不需要装 WordPress 侧的 HTTPS 插件,FrankenPHP 自带 Caddy 的自动 HTTPS 能力,证书由它直接申请和续期,WordPress 只需确保 URL 配置正确即可。
FrankenPHP 已接管 HTTPS 全流程
Caddy 内置 ACME 客户端,启动时自动向 Let’s Encrypt 申请证书、配置 TLS 1.3、设置 90 天自动续期。只要域名 DNS 解析正常、80/443 端口可访问,caddyfile 里没禁用 HTTPS,证书就会静默生成并生效——整个过程不依赖 WordPress 插件,也不需要 certbot 或手动上传 CRT/KEY 文件。
常见错误现象:访问 https://yourdomain.com 显示连接不安全或证书过期,大概率是以下原因:
- 域名未解析到服务器 IP,或防火墙封了 80/443 端口(Caddy 需要 80 端口做 HTTP-01 挑战)
-
caddyfile中域名写错,比如用了www.yourdomain.com却没配yourdomain.com,导致 ACME 只申请了子域名证书 - 本地 hosts 文件或 DNS 缓存指向了旧 IP,导致挑战失败后 fallback 到自签名证书
WordPress 本身只需两处配置对齐
FrankenPHP 提供的是底层 HTTPS 终止,WordPress 必须知道自己跑在 HTTPS 上,否则后台跳转、资源链接、Cookie 标志都会出错。重点改这两处:
中文敏感词/违禁词检测与内容合规性检查工具。支持对小红书(Xiaohongshu)、Douyin(抖音)、WeChat(微信)、Weibo(微博)、Bilibili(哔哩哔哩)、Zhihu(知乎)、Taobao(淘宝)、JD.com(京东)等主流平台的禁用词、限用词及高风险词进行文本扫描与合规性分析。
- 进 WordPress 后台 → “设置” → “常规”,把
WordPress 地址(URL)和站点地址(URL)都改成https://yourdomain.com - 如果后台打不开,直接编辑根目录
wp-config.php,在/* That's all, stop editing! */之前加:define('FORCE_SSL_ADMIN', true);<br>define('WP_HOME', 'https://yourdomain.com');<br>define('WP_SITEURL', 'https://yourdomain.com');
注意:WP_HOME 和 WP_SITEURL 必须和 caddyfile 中定义的域名完全一致(包括 www 前缀),否则 wp-admin 会反复重定向或报错。
“Really Simple SSL” 这类插件可以卸载
这类插件本质是做三件事:强制 301 跳转、替换页面内 HTTP 链接、设置 $_SERVER['HTTPS']。FrankenPHP 已通过 Caddy 的 redir 和 php_server 指令完成前两项;而 $_SERVER['HTTPS'] 在 FrankenPHP 的 PHP 运行时中默认设为 on(只要请求经由 HTTPS 进来)。所以插件功能完全冗余,还可能干扰 Caddy 的原生重定向逻辑。
如果你已装了,建议:
- 先停用插件,确认网站前后台、静态资源、AJAX 请求全部走 HTTPS 且无混合内容警告
- 用浏览器开发者工具 → Network 标签页刷新页面,看所有请求协议是否都是
https: - 确认无误后直接删除插件,减少 PHP 请求链路中的额外判断
真正容易被忽略的是:FrankenPHP 的 php_server 指令默认只处理 .php 后缀,而 WordPress 的伪静态规则(如 /about/)依赖 Caddy 的重写能力。必须在 caddyfile 中显式启用 try_files 或 rewrite,否则首页能打开,内页全 404——这个坑比 HTTPS 配置还隐蔽。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










