Typecho 开启 HTTPS 后后台登录无限跳转,核心原因是程序误判当前为 HTTP 协议导致 Cookie 安全标志设置错误。最推荐的修复方式是在站点根目录的 config.inc.php 文件中强制开启安全协议识别,并排查 CDN 回源配置。
先说结论:修改配置文件强制识别 HTTPS 即可解决大部分协议 mismatch 问题,若使用 CDN 需额外调整缓存规则。
- 适合:开启 HTTPS 后登录页循环跳转、CDN 加速后后台无法进入的场景
- 先处理:编辑 config.inc.php 添加__TYPECHO_SECURE__定义,关闭 CDN 回源 302 跟随
- 再验证:清除浏览器缓存后重新登录,检查 Cookie 是否带有 Secure 标志
快速处理思路
无需复杂命令,直接修改 PHP 配置文件即可生效,操作前务必备份原文件。
// 在 config.inc.php 文件末尾添加以下代码
define('__TYPECHO_SECURE__',true);为什么会这样
浏览器通过 HTTPS 访问,但服务器接收到的请求被 CDN 或负载均衡降级为 HTTP。Typecho 默认根据服务器接收到的协议判断 Cookie 属性,当检测到 HTTP 时会拒绝写入 Secure Cookie,导致登录后凭证丢失并跳回登录页。这种情况常见于使用 CloudFlare、腾讯云 CDN 等半程加密架构,即用户到 CDN 是 HTTPS,CDN 到源站是 HTTP。
分步处理
按照以下顺序操作,每一步完成后观察是否解决问题,避免过度修改。
第一步:修改配置文件
使用 FTP 或 SSH 进入网站根目录,找到 config.inc.php 文件。在文件最后一行添加 define('__TYPECHO_SECURE__',true); 保存上传。此操作强制 Typecho 认为当前连接是安全的,允许写入 Secure Cookie。
第二步:检查 CDN 缓存规则
若使用了 CDN,登录后台管理面板进入缓存配置。将 admin 目录或后台登录接口的缓存规则设置为不缓存,避免登录状态被公共缓存覆盖。部分 CDN 需要开启参数跟随,确保 URL 后的验证参数不被忽略。
第三步:调整回源配置
在 CDN 回源配置中,关闭跟随 301/302 跳转选项。开启该选项时,CDN 可能不会正确传递登录成功后返回的新 Cookie,而是带着旧 Cookie 请求源站,导致源站判定未登录。
第四步:清除本地缓存
修改配置后,清除浏览器 Cookie 和缓存,或使用无痕模式重新尝试登录,排除本地缓存干扰。
怎么验证是否生效
操作完成后,通过以下现象确认修复成功。
1. 登录行为验证
输入账号密码提交后,页面不再跳回登录界面,而是直接进入后台管理仪表盘。
2. 开发者工具检查
按 F12 打开浏览器开发者工具,进入 Application 或 Storage 标签页查看 Cookie。确认 typecho_ 开头的 Cookie 项中 Secure 属性已被勾选,且 Path 设置正确。
3. 请求协议检查
在 Network 标签页查看登录请求的响应头,确认没有 mixed content 警告,且重定向状态码符合预期。
常见坑
处理过程中容易忽略以下细节,可能导致问题反复。
1. 文件未备份
修改 config.inc.php 前未备份,若代码 syntax 错误会导致网站白屏。建议修改前复制一份 config.inc.php.bak。
2. 评论地址未更新
开启 HTTPS 后,前端评论表单提交地址可能仍为 HTTP。需检查主题 comments.php 文件,将 commentUrl 输出中的 http 替换为 https。
3. 服务器时间不同步
服务器系统时间偏差过大可能导致 Cookie 有效期判断错误,确保服务器时间与网络时间同步。
常见问题
评论表单提交地址还是 HTTP 怎么办?
修改主题文件 comments.php,找到$this->commentUrl() 调用处,使用 str_replace 将 http 替换为 https 后保存。
使用腾讯云 CDN 依然无法登录?
进入腾讯云 CDN 控制台,在回源配置中找到回源跟随 301/302 配置,将其关闭即可解决 Cookie 传递问题。
修改配置后网站打不开怎么办?
立即将 config.inc.php 还原为备份文件,检查 PHP 语法是否正确,确保 define 语句末尾有分号且放在 PHP 标签内。
参考来源
- CSDN 博客:Typecho HTTPS 无法登陆后台_typecho admin 无法登录-CSDN 博客
- CSDN 博客:Typecho 开启 HTTPS 以及加入 CDN 后台不能登陆问题解决_typecho 不能点下次自动登录-CSDN 博客
- CSDN 博客:解决 CDN 加速导致 typecho 后台无限登录的问题 - 星泽 V 社
- CSDN 博客:Typecho 使用腾讯云 CDN 后台卡在登录页无法登录解决
- CSDN 问答:Typcho 常见问题:如何解决后台登录频繁跳转?_编程语言-CSDN 问