编辑一个长页面点了二十多分钟,点更新后弹窗显示 403,刷新回到上一个版本,二十分钟的改动全没了,控制台里 admin-ajax.php 返回 403。乍看像缓存或者权限的锅,追下去往往不是。
wp config set WP_DEBUG true --raw wp config set WP_DEBUG_LOG true --raw tail -f wp-content/debug.log
追下去是这么回事:服务器 WAF 把 admin-ajax 的长 POST 当成异常请求拦了,请求体超过 1MB 触发规则。另一个可能是 nonce 过期,页面开了太久,有效期已经过去。
「Elementor 保存丢失」这类改动最怕改一半,回滚脚本先准备好,再动生产。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。
监控和日志的时间要对上,时区不一致会多绕很大一圈。
具体做法是,先在控制台看 admin-ajax.php 的响应和状态码,确认是 403 还是 500;把 WAF 对 admin-ajax.php 的请求体限制调到 4MB 以上,或临时放行该路径;编辑前先存一次草稿,长页面分段保存。
验收就看一点,再点更新返回 200,页面内容保存成功,刷新后修改还在。
