AI摘要

Typecho博客使用CDN时后台登录问题解决方案:关闭回源301/302跟随,设置缓存规则,确保登录状态和动态页面不被缓存。

前言

博客站出现后台登录原地打转以及进行后台某些页面或操作展示登录的问题挺久了。
之前根本没想到是CDN的问题,以为是雷池WAF的拦截,但是设置了白名单后仍有问题,就归咎于我是自己把博客代码或配置搞坏了...直到前两天把CDN关掉了,这些问题突然消失了,我才知道这是CDN没配置好的问题。
之前也在typecho社区求助过,可能是问法有问题,只得到了一个英文回答,我按此排查后也未果..
现在博客的加载速度也是优化的比以前快了很多,控制台和网络请求也没有任何错误。
2025-10-26T05:00:26.png

问题描述

没有控制台截图,不想再复刻问题了。

1. 登录成功后仍返回登录页(循环)

  • 登录后台后页面刷新,又回到 /admin/ 登录界面。
  • 网络面板可见登录 POST /index.php/action/login 返回 302 跳转到 /admin/
  • 浏览器未能持久化登录所需的 Set-Cookie,后续访问仍是未登录态。

2. 已登录,访问后台 plugins.php 却是登录页模板

  • 访问 GET /admin/plugins.php 得到 200,但页面内容是登录模板。
  • 响应头出现 x-cache: HITx-swift-cachetime: 10800age: 2700,说明该页在边缘被缓存并被直接命中返回。

3. 启用/禁用插件时被重定向回登录页


原因分析

  1. 回源 301/302 跟随开启

    • CDN 在边缘节点“自行跟随”源站的 302 跳转,导致该响应中的 Set-Cookie 未返回到浏览器。
    • 浏览器拿不到登录 Cookie,自然会回到登录页,形成“登录 → 刷新 → 仍未登录”的循环。
  2. 后台页面被 CDN 缓存

    • 未登录访问后台页返回的是登录模板;一旦被边缘缓存,后续即使已登录也可能命中该缓存,继续看到登录页。

正确的 CDN 配置(以阿里云 CDN 为例)

原则:后台与动态动作完全不缓存;只缓存静态资源与首页等可缓存页面;任何携带登录 Cookie 的请求都不要缓存。

1. 关闭回源 301/302 跟随

  • 全局关闭“回源 301/302 跟随”。
    2025-10-26T04:23:10.png

2. 缓存规则清单(按优先级从高到低)

阿里云 CDN 为“权重数值越大优先级越高”,例如:99 > 90 > 10。
  • [权重 99] php → 0 秒(不缓存)
  • [权重 99] /admin/ → 0 秒(不缓存)
  • [权重 99] /index.php/action/ → 0 秒(不缓存)
  • [权重 99] /admin/plugins.php → 0 秒(不缓存)
  • [权重 10] 主题/插件静态资源目录(示例)

    • /usr/themes/handsome/static/ → 1 年
    • /usr/themes/handsome/assets/ → 1 年
    • /usr/plugins/**/static/ → 1 年
    • /usr/uploads/ → 1 年
  • [权重 90] 首页 / → 5–15 分钟

    确保首页 / 的权重低于后台不缓存规则,避免被覆盖。

可选:如需对 archives 等列表/文章页做短期缓存(会影响评论的实时性),为相关目录单独设置几分钟的 TTL。
我设置的部分示例

3. Cookie 与缓存键

  • 关闭“携带 Cookie 缓存”或开启“带 Cookie 的请求不缓存”。
  • 保持“忽略源站不缓存标头”为关闭,尊重源站的 Cache-Control/Set-Cookie。

4. 刷新与测试

  • 刷新以下路径缓存:/admin/*/index.php/action/*/、以及被误缓存的具体页面(如 /admin/plugins.php)。
  • 验证要点:

    • 登录 POST 的 302 响应能携带并落下登录相关 Set-Cookie
    • 后台页面响应应为 x-cache: MISS 或无 age
    • 首页命中 x-cache: HITage 逐步增大,符合设定的过期时间。
      2025-10-26T04:48:30.png

参考链接


结语

本问题的本质是“302 跟随吞掉 Set-Cookie”与“未登录模板被缓存”。按上面的两步到位:关闭回源 301/302 跟随 + 后台/动作不缓存,再配合首页的有限时缓存,即可既保证登录态正确,又兼顾前台加速效果。

最后修改:2025 年 10 月 26 日
如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:Typecho 使用 CDN 后台无法登录且跳转错误的解决
本文地址:https://blog.ybyq.wang/archives/1243.html
版权说明:若无注明,本文皆Xuan's blog原创,转载请保留文章出处。