子比主题开发文档
使用指南Codestar Framework主题扩展在线部署AI 功能推荐插件赞助打赏

伪静态、缓存与 CDN

处理 WordPress 固定链接、子比主题用户中心 404、Ajax、支付回调、登录态和 CDN 缓存排除。

固定链接先于缓存

页面 404、用户中心打不开、商城商品页 404、论坛页 404,优先检查 WordPress 固定链接和服务器伪静态。不要一开始就清 CDN,因为源站规则不对时,清缓存也只是缓存新的错误。

Redis 对象缓存和 PHP OPcache 的启用顺序、检测方式和清理边界见 Redis 与 OPcache 性能优化。本页重点处理固定链接、页面缓存和 CDN。

基础步骤:

  1. 打开 设置 -> 固定链接
  2. 选择需要的链接结构。
  3. 点击保存,不需要修改也保存一次。
  4. 清理 WordPress 缓存和 CDN 缓存。
  5. 访问文章页、分类页、用户中心、商品页、论坛页。

保存固定链接会刷新 WordPress rewrite 规则。子比主题的商城、论坛、用户中心等功能依赖 WordPress 的路由体系,规则没有刷新时就容易出现局部 404。

Nginx 规则

Nginx 常用 WordPress 伪静态:

location / {
    try_files $uri $uri/ /index.php?$args;
}

如果站点安装在子目录,要按实际目录调整。宝塔一般在 网站 -> 设置 -> 伪静态 选择 WordPress 规则。

排查要点:

现象检查
所有内页 404Nginx 没有 WordPress rewrite
只有用户中心 404固定链接没刷新、用户中心页面/别名冲突
商品详情 404商城重写别名、固定链接、缓存旧规则
分页 404pagination_base、伪静态、CDN 缓存
后台正常前台 404Nginx 站点配置或运行目录错误

修改 Nginx 配置后要测试并重载:

nginx -t
systemctl reload nginx

Apache 规则

Apache 需要确认根目录 .htaccess 可写,并且包含 WordPress 规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

如果 .htaccess 存在但规则不生效,检查 Apache 是否启用了 mod_rewrite,虚拟主机是否允许 AllowOverride All

OpenLiteSpeed

OpenLiteSpeed 通常也使用 .htaccess,但修改规则后可能需要重启服务或清理 LSCache。出现“后台保存固定链接成功但前台仍旧 404”时,先清 LSCache,再确认虚拟主机 rewrite 是否启用。

子比主题动态路径

这些路径和请求通常不应该被当作普通 HTML 缓存:

/wp-admin/admin-ajax.php
/wp-login.php
/user
/oauth
/cart
/pay
/message

实际站点可能修改用户中心、商城购物车、商品详情、支付页别名。规则要按当前站点最终 URL 调整,不要只照默认路径。

Ajax 不要缓存

子比主题大量交互通过 Ajax 完成:登录注册、验证码、用户资料、消息、私信、购物车、下单、支付、签到、收藏、点赞等。admin-ajax.php 命中缓存会出现非常奇怪的现象:

现象常见原因
验证码一直错误验证码请求或校验结果被缓存
登录后还是未登录登录态页面命中游客缓存
按钮点击后状态不变Ajax 响应被缓存或被 WAF 拦截
订单支付后不更新回调路径被 CDN 缓存或拦截
用户中心显示别人状态登录 Cookie 没有绕过缓存

CDN、缓存插件、服务器缓存都要排除 admin-ajax.php。如果安全插件或 WAF 拦截 POST 请求,也会表现为按钮没反应或弹出异常提示。

出现这些 Cookie 时,不应该命中游客 HTML 缓存:

wordpress_logged_in_
wordpress_sec_
wp-settings-
comment_author_

缓存系统要按 Cookie 绕过动态缓存。否则用户登录后看到的可能还是游客页面,用户中心、消息数、余额、会员状态、购物车数量都会错。

CDN 缓存建议

域名解析、Cloudflare 代理状态、CNAME 与源站绑定的基础排查见 域名解析与站点访问。确认 DNS 正常后,再继续处理缓存策略。

适合缓存:

*.css
*.js
*.jpg
*.jpeg
*.png
*.webp
*.gif
*.svg
*.woff
*.woff2

谨慎缓存或排除:

HTML 页面
POST 请求
带 query 的动态接口
登录用户请求
支付回调
验证码接口
用户中心
购物车和订单页

如果一定要缓存游客 HTML,先确保 Cookie 绕过、POST 绕过、后台路径绕过、支付回调绕过都配置完成。

支付回调

支付成功但订单状态不更新时,优先确认回调是否能到达源站:

  1. 支付平台后台是否有回调记录。
  2. 回调 URL 是否是当前正式域名。
  3. HTTPS 证书是否有效。
  4. CDN/WAF 是否拦截回调。
  5. 回调路径是否被缓存。
  6. 源站 access log 是否有回调请求。
  7. PHP error log 是否有签名或订单处理错误。

支付回调应该直达源站动态逻辑,不能被静态缓存替代。

JS 合并压缩

缓存插件和 CDN 的 JS 优化可能影响弹窗、用户操作、图片灯箱、评论、支付和验证码。出现前端交互异常时按顺序排查:

  1. 关闭 JS 合并。
  2. 关闭 JS 延迟加载。
  3. 关闭 HTML 压缩。
  4. 排除主题核心脚本和验证码脚本。
  5. 清理所有层级缓存。
  6. 打开浏览器控制台看第一个报错。

不要同时开启多套优化插件。多个插件重复合并、压缩、延迟加载,问题会叠加。

清缓存顺序

建议从近到远:

  1. 浏览器缓存。
  2. WordPress 缓存插件。
  3. 对象缓存,例如 Redis。
  4. 服务器缓存,例如 Nginx fastcgi_cache、OpenLiteSpeed Cache。
  5. CDN 缓存。
  6. 关闭 CDN 回源测试。

如果源站正常、开 CDN 异常,问题就在 CDN 缓存规则、回源协议、WAF、资源域名或 Cookie 绕过。

参考来源

本页吸收了子比官网固定链接、伪静态、CDN 缓存配置和常见问题公开教程,并结合子比主题登录、用户中心、支付、商城、论坛等动态链路整理。

On this page