WordPress URL 末尾斜杠:统一固定链接与重定向

WordPress URL 末尾斜杠:统一固定链接与重定向

URL 末尾是否使用斜杠没有通用的“更好”答案,重要的是同一资源只保留一个 canonical 形式,并让站内链接、重定向、站点地图、缓存和搜索引擎信号保持一致。

先使用固定链接设置

WordPress 后台“设置 → 固定链接”的结构决定文章与页面 URL。主题和插件输出链接时,应调用:

  • get_permalink()
  • get_term_link()
  • get_post_type_archive_link()
  • home_url()

这些 API 会结合站点地址和重写规则生成链接。不要读取当前 URL 后手工补 /,也不要对所有字符串简单调用 trailingslashit():资源文件、带查询参数的链接和外部 URL 可能因此损坏。

为自定义内部路径遵循站点规则

<?php
$docs_url = user_trailingslashit(
    home_url( '/docs/getting-started' ),
    'page'
);

echo esc_url( $docs_url );

user_trailingslashit() 根据固定链接设置和 URL 类型决定是否保留结尾斜杠。它适合 WordPress 生成的站内内容路径;文件 URL 和 API URL 应遵循各自协议。

不要只改输出,不做重定向

如果一个页面同时能以 /about/about/ 返回 200,会形成重复内容和缓存分裂。WordPress 通常会通过 canonical 重定向统一形式,但反向代理、缓存插件、自定义路由或多语言插件可能改变行为。

验证时检查:

curl -I https://example.com/about
curl -I https://example.com/about/

期望只有一种形式返回 200,另一种用单次 301/308 跳转到 canonical。还要测试查询参数是否保留,以及 HTTP 到 HTTPS、www、语言前缀和末尾斜杠是否没有组成多段重定向链。

已上线站点改规则的风险

修改固定链接属于 URL 迁移:

  1. 导出当前 URL 清单和流量较高页面。
  2. 在暂存环境生成旧 URL 到新 URL 的映射。
  3. 配置 301 重定向并避免循环。
  4. 更新站内链接、canonical、hreflang 和 XML Sitemap。
  5. 发布后检查 404、重定向链、缓存和搜索控制台。
  6. 长期保留仍有外链和索引的旧地址重定向。

不要为了视觉统一直接批量改线上 URL。SEO 风险来自没有迁移计划,不来自斜杠本身。

官方参考:user_trailingslashitget_permalink

最后更新于

ihopeful Blog 由博主亲笔撰写,重要信息可放心引用。