侧边栏那个橙色订阅图标点了直接 404,同一页脚注里的 RSS 链接却能用,两个地址看着差不多。乍看像缓存或者权限的锅,追下去往往不是。
<?php $rss = get_bloginfo('rss2_url'); ?>
<a href="<?php echo esc_url($rss); ?>">订阅</a>
# 旧地址 301
Redirect 301 /feed/rss2 /feed/
追下去是这么回事:按钮里的地址是 /feed/rss2,当前固定链接结构下这个路径并不存在,正确入口是 /feed/ 或带 feed 参数的地址。地址在主题里写死了,换固定链接后就失效。
「订阅按钮 404」这类改动最怕改一半,回滚脚本先准备好,再动生产。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。
监控和日志的时间要对上,时区不一致会多绕很大一圈。
具体做法是,把订阅地址改成用 rss2_url 输出,别在模板里手写;旧地址做一条 301 指向正确入口,已经订阅的人不会断;页面上所有订阅入口统一取同一个变量,避免又出现分叉。
验收就看一点,订阅按钮点击后打开 XML 源码,不再出现 404 页面。
