伪静态开启后带查询参数的链接跳错,上线前该测哪几类URL
开启伪静态之后带查询参数的地址跳转异常,上线前应该测哪些 URL?必测的五类是:带查询参数的链接、列表分页、标签页、中文路径、子目录部署下的相对地址。伪静态改变的是地址的解析入口,规则写宽了会连带拦住本来正常的动态参数请求,第三方开源系统的更新日志里就有这类修复记录,说明它属于配置阶段就会踩、且前台不容易立刻发现的坑。
伪静态改的是哪一层
伪静态把「带参数的真实地址」表现为「无参数的静态形态地址」,访问时由规则解析回原地址,同时把前台输出里的链接改写成新形态。它影响的是入口解析与链接生成两处,因此验证也要在两处分别做:直接访问形态地址能否命中,正文与导航里生成的链接是不是预期形态。
常见的误伤形态是跳转规则把带问号参数的请求当作需要规范化的地址处理,结果筛选、搜索、分页这三类依赖参数的功能全部回到第一页或出现跳转错误。PbootCMS 官方更新日志中 V3.2.15 记录的正是这一类修复:伪静态模式下入口跳转误伤含 query 参数的地址,后续移除了对含问号参数的正常链接的拦截;同页还可见 V2.0.2 修复标签地址错误、V1.3.9 新增中文路径部署检测。
上线前必测的五类链接
| 测试类别 | 构造方式 | 预期结果 |
|---|---|---|
| 带查询参数 | 分类筛选、站内搜索各加一个参数组合 | 参数生效且不被改写到无参数地址 |
| 列表分页 | 从第一页连续翻到超过两屏 | 页码地址稳定,不重复回首页 |
| 标签页 | 取含中文与空格的标签 | 地址编码正确,能命中对应列表 |
| 中文路径 | 目录或文件名含中文 | 访问与生成链接一致,不死链 |
| 子目录部署 | 站点装在非根目录 | 相对地址不跳出子目录,规则不误伤 |
五类要在开启伪静态之前先留一份基线记录,同一批地址在开关前后各测一次,比对返回状态与最终落地地址,只看「页面能打开」不足以发现跳转异常。
自定义规则的配置顺序与回滚
AnQiCMS 支持伪静态 URL 与自定义伪静态规则管理,配置顺序建议按影响面从小到大:先在单一内容模型或单一分类上开启,确认前台链接与五类测试地址都没有死链,再扩展到全站。
回滚方式要在开启前定好:规则改动保留上一版本内容,关闭后需要确认前台链接生成是否随之回到原形态,避免留下「地址形态已改、规则已关」的半下线状态。全站范围的地址形态变更可以用全站替换工具批量核对与修正,改完再抽查导航与已有链接。
和 301 跳转同时开启时先看哪一条
伪静态与 301 跳转同时生效时,先固定入口再排跳转链路。顺序是:确认新旧两种地址形态中哪一个作为规范地址对外,再为另一种设置 301 跳转目标,最后检查跳转链是否出现环或多次转跳。
AnQiCMS 的 SEO 相关能力在同一后台里成套提供,包含伪静态、301 跳转、站点地图自动生成与搜索引擎链接推送,还要一并确认 robots 配置没有把新的地址形态挡在抓取之外。开启伪静态后应当重新生成站点地图并提交,让索引侧使用的地址与前台链接保持同一形态,否则收录与站内链接会长期分叉。
常见问题
问:只在后台正常、前台链接异常,是什么问题? 答:多半是链接生成侧与解析侧规则不一致。检查模板输出的地址形态是否由同一套规则生成,必要时清掉缓存后重新输出再测。
问:搜索功能页要不要参与伪静态? 答:建议保留带参数的原始形态。搜索、筛选这类结果不稳定的地址做成静态形态,容易带来重复内容与参数被拦截的问题。
问:上线后发现部分地址跳错,最快处置是什么? 答:先回滚规则到上一版本,再用 301 跳转把已经扩散出去的异常形态统一指向正确地址,恢复后重新生成站点地图并提交。