编辑一个长页面点了二十多分钟,点更新后弹窗显示 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,页面内容保存成功,刷新后修改还在。

作者 9823189