Typecho 后台登录无限刷新跳转是怎么回事?怎么修复?

文章导读
Typecho 后台登录无限刷新跳转通常由 HTTPS 协议配置不一致、CDN 缓存规则错误或 Session 权限问题导致。最优先排查 CDN 回源设置与 config.inc.php 中的安全协议定义,其次检查服务器 Session 目录权限。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

Typecho 后台登录无限刷新跳转通常由 HTTPS 协议配置不一致、CDN 缓存规则错误或 Session 权限问题导致。最优先排查 CDN 回源设置与 config.inc.php 中的安全协议定义,其次检查服务器 Session 目录权限。

先说结论:Typecho 登录循环跳转多为协议不匹配或缓存拦截凭证,需按 CDN 配置、站点安全定义、Session 权限顺序排查。

  • 先确认:检查是否启用 CDN 加速及 HTTPS 强制跳转,确认回源协议是否一致。
  • 先处理:在 config.inc.php 添加__TYPECHO_SECURE__定义,或调整 CDN 缓存忽略规则。
  • 再验证:清除浏览器 Cookie 后重试登录,观察 F12 网络面板是否仍有 302 循环。

快速处理思路

若使用 CDN 或 HTTPS 代理,优先修改站点根目录配置文件。编辑 Typecho 站点根目录下的 config.inc.php 文件,在末尾添加以下代码强制启用安全协议标记:

define('__TYPECHO_SECURE__',true);

若使用腾讯云等 CDN 服务,进入 CDN 控制台关闭回源跟随 301/302 配置,或将 admin 目录缓存规则设置为不缓存。

为什么会这样

核心原因是浏览器与服务器之间的协议状态不一致导致 Cookie 丢失。当用户通过 HTTPS 访问,但 CDN 或负载均衡器通过 HTTP 回源时,PHP 可能判定为非安全连接,导致登录凭证 Cookie 未被正确写入或读取。此外,CDN 节点若缓存了登录后的 302 跳转页面,会阻止新的 Session Cookie 生效,形成登录死循环。

分步处理

按以下顺序排查,每步操作后需清除浏览器缓存测试。

1. 修复 HTTPS 协议标识

适用于使用 Cloudflare、宝塔 SSL 或反向代理场景。编辑 config.inc.php,确保添加 define('__TYPECHO_SECURE__',true);。此操作告知 Typecho 即使底层接收 HTTP 请求,也应视为安全连接处理 Cookie。

Typecho 后台登录无限刷新跳转是怎么回事?怎么修复?

2. 调整 CDN 缓存与回源策略

登录 CDN 控制台,检查回源配置。关闭回源跟随 301/302 功能,防止 CDN 拦截登录后的重定向指令。在缓存配置中,为/admin 路径添加新规则,缓存行为选择不缓存,确保后台动态请求直达源站。

3. 检查 Session 目录权限

适用于宝塔面板或手动配置 PHP 环境。执行命令 php -i | grep session.save_path 确认 Session 存储路径。检查该目录属主是否为 www,权限是否为 755。若权限错误,执行 chown -R www:www 路径 修复。同时检查 php.ini 或.user.ini 中是否有异常的 session.save_path 覆盖。

4. 修正 Nginx 伪静态配置

若登录出现 404 或路径错误,检查 Nginx 配置。确保 location 规则支持 pathinfo,将 location~.*\.php$ 修改为 location~.*\.php(\/.*)*$。在某些 PHP 版本中,需在 php.ini 开启 cgi.fix_pathinfo=1。

Typecho 后台登录无限刷新跳转是怎么回事?怎么修复?

5. 排查插件与主题冲突

若上述配置无误仍无法登录,可能是插件兼容性问题。临时重命名/usr/plugins 目录禁用所有插件,或使用默认主题测试。若恢复登录,则逐一启用插件定位冲突源。

怎么验证是否生效

打开浏览器开发者工具 F12,切换至 Network 面板。尝试登录后台,观察登录请求的响应状态码。正常登录应返回 302 跳转至/admin 索引页,且响应头 Set-Cookie 中包含新的 Typecho 凭证。若仍返回 200 且页面内容为登录页,或持续 302 循环,说明问题未解决。同时检查 Application 面板中 Cookie 是否成功写入且未过期。

常见坑

升级 Typecho 时切勿删除/usr/目录,该目录包含主题、插件和上传文件,删除会导致数据丢失。多个 PHP 版本共存时,需确认当前网站绑定的 PHP 版本对应的 Session 路径,避免修改了错误版本的配置文件。SELinux 安全模块可能拦截 PHP 写入 Session,临时关闭 setenforce 0 可验证是否为此原因。

常见问题

登录成功后又跳回登录页怎么办?

多为 CDN 缓存了登录重定向页面。请在 CDN 控制台刷新 URL 缓存,并将 admin 目录设置为不缓存。

后台显示 503 Service Unavailable 无法登录?

可能是主题或插件消耗资源过大。请屏蔽第三方主题和插件,使用默认配置测试,或升级 Typecho 至最新版本。

点击登录链接出现 404 Not Found?

这是 Nginx 伪静态规则问题。请将伪静态配置切换为 typecho.conf 或修改 location 规则支持 pathinfo。

参考来源

  • CSDN 问 - Typcho 常见问题:如何解决后台登录频繁跳转?
  • 个人教程专栏 - Typecho 使用腾讯云 CDN 后台卡在登录页无法登录解决
  • Lucien.ink - Typecho HTTPS 无法登陆后台 (URL: blog.lucien.ink/archives/523)
  • 星泽 V 社 - 解决 CDN 加速导致 typecho 后台无限登录的问题
  • 博客园 - 网站后台频繁退回到登录页面
  • Typecho 无法登陆后台解决方法 (优刻得 CDN 场景)
  • 宝塔面板登录界面无限刷新_修复 Session 目录权限
  • Typecho 后台无法登录显示 503 service unavailable 问题及处理
  • Typecho 点击前台链接或者后台登录时出现 404 的解决方法