
直接回答
要在 WordPress 中重定向一个 URL,请安装一个重定向插件,例如免费的 Redirection 插件,打开 Tools > Redirection,将旧路径作为源地址、新 URL 作为目标地址,并保持使用 301,以便永久跳转。如果你更改了文章的别名,WordPress 通常会自动为你重定向旧地址。在 Apache 托管上,你也可以改为在 .htaccess 中添加一行 Redirect 301,并放在 # BEGIN WordPress 块上方。如果整个网站迁移到了新域名,旧域名需要自己配置 301 重定向,方式要么是通过旧主机,要么是使用可响应该域名的重定向服务。
页面会被重命名,文章会被合并,有时整个网站也会迁移到新域名。重定向会把访问者和搜索引擎从旧地址引导到新地址,这样链接、书签和排名就能继续正常工作。本指南展示了在 WordPress 中实现这一点的四种方法,从大多数网站需要的那一种开始,并说明当旧域名本身也需要重定向时该怎么做。

先选择重定向类型:301 还是 302#
下面的每种方法都会要求你填写状态码。如果页面已永久迁移,请使用 301:Google 会把新 URL 视为要索引的地址,并将旧 URL 的信号传递给它。只有在你会切换回去时才使用 302,例如在维护期间或短期活动中。Google 更偏好服务器端重定向[1](插件、.htaccess 或代码),而不是 meta refresh 或 JavaScript。
| Code | 在 WordPress 中何时使用 |
|---|---|
| 301 永久重定向 | 页面、文章或整个网站已永久迁移。默认选择。 |
| 302 Found | 迁移是临时的,旧 URL 应该保留在搜索结果中。 |
| 307 / 308 | 与 302 / 301 相同,但浏览器会重复相同的请求方法。对于普通页面很少需要。 |
| 元刷新 | 你根本无法添加服务器端重定向。立即重定向会被视为永久重定向,延迟重定向会被视为临时重定向。 |
实际上,几乎每个人都需要 301:在 RedirHub 上,大约每 100 条重定向中就有 96 条是 301(RedirHub 平台数据,2026 年 10 月)。301 与 302 指南涵盖了边缘情况。
先检查:WordPress 可能已经为你重定向好了#
如果你只是更改了文章的别名,在安装任何东西之前先打开旧网址。WordPress 会记住旧的文章别名,并将 301 重定向到该文章当前的永久链接[2]。这不包括页面(或其他层级型文章类型)、重定向到另一个网站,或从未属于某篇文章的 URL,因此这些情况需要使用下面的方法之一。
方法 1:使用插件重定向页面(最简单)#
对于大多数 WordPress 网站来说,插件是正确的选择:无需代码、无需服务器访问,而且你可以在后台撤销它。最常用的是 Redirection[3],它是免费的,有超过 200 万次活跃安装,并会在“工具 > Redirection”下添加自己的界面。下面是使用它重定向单个页面的方法:
- 在你的 WordPress 后台中,打开 插件,添加新插件,搜索“Redirection”,然后安装并启用它。
- 前往 工具 > Redirection,完成简短的首次设置。
- 添加一个新的重定向,并将旧路径作为源地址,例如 /old-page/。
- 输入完整的新 URL 作为目标,例如 https://mybrand.com/new-page/。
- 保持为 301(永久重定向)并保存重定向。
- 在无痕窗口中打开旧 URL,检查它是否跳转到新页面,或者使用 重定向速度测试 来查看状态码。
Redirection 还会记录 404 错误,因此你可以批量重定向它们,支持正则表达式,可在文章固定链接更改时自动创建重定向,还能将重定向导入或导出为 CSV、.htaccess 或 Nginx 规则。它需要 WordPress 6.7 或更高版本,以及 PHP 7.4 或更高版本。
其他可完成相同工作的插件#
- Rank Math SEO:免费插件在切换到高级模式并在模块中启用后,提供重定向模块(Rank Math SEO > Redirections)。它支持 301、302 和 307。CSV 导入导出以及 .htaccess 同步是 Pro 功能[4]。
- Yoast SEO:免费插件没有重定向管理器。Yoast SEO Premium[5] 每年 118.80 美元,增加了该功能,并在你移动或删除内容时提供重定向。
- Safe Redirect Manager:由 10up 提供的轻量级免费插件,可在“工具 > Safe Redirect Manager”中使用,支持正则和通配符,默认上限为1,000 个重定向[6]。
如果你已经在使用 Rank Math 或 Yoast Premium,请使用它们的重定向模块,而不是再添加第二个插件。两个都能重定向的插件可能会互相冲突。
方法 2:在 .htaccess 文件中重定向(Apache)#
在 Apache 主机上,.htaccess 中的重定向会在 WordPress 加载之前运行,所以它们是最快的选择,即使插件被关闭也能继续工作。这个文件中的错误可能会让网站宕机,所以请先备份。将单个页面、整个文件夹以及整个站点重定向到新域名的写法如下:
apache# 单个页面
Redirect 301 /old-page/ https://mybrand.com/new-page/
# 整个文件夹
RedirectMatch 301 ^/old-blog/(.*)$ https://mybrand.com/blog/$1
# 整个站点到新域名,并保留每个路径
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?oldbrand\.com$ [NC]
RewriteRule ^(.*)$ https://mybrand.com/$1 [R=301,L]
# BEGIN WordPress
# ... 保留 WordPress 自己的规则不变 ...
# END WordPress- 使用你主机的文件管理器或 SFTP,从网站根目录(包含 wp-config.php 的文件夹)下载一份 .htaccess 副本。
- 打开它,并将你的规则添加到 # BEGIN WordPress 行的 上方。
- 保存并上传该文件。
- 在无痕窗口中打开旧 URL,或通过 重定向速度测试 进行检查,确认是否 301 到了正确的页面。
请将规则保留在 # BEGIN WordPress / # END WordPress 标记之外:WordPress 在保存固定链接时会重写该区块,并且会替换标记之间的内容[7]。Nginx 服务器根本不会读取 .htaccess。如果你的主机运行的是 Nginx,请让他们添加一条 return 301 规则,或者使用插件。
方法 3:使用代码重定向(开发者)#
当重定向依赖于逻辑时就使用代码,例如将未登录的访客从会员页面发送到登录页。挂钩到 template_redirect,它会在 WordPress 知道请求的是哪个页面后运行一次,然后使用 wp_safe_redirect()。有两个细节经常让人出错:wp_redirect() 和 wp_safe_redirect() 都默认返回 302[8],所以你需要自己传入 301;而且它们都不会停止脚本,因此要紧接着调用 exit。
phpadd_action( 'template_redirect', function () {
if ( is_page( 'old-page' ) ) {
wp_safe_redirect( home_url( '/new-page/' ), 301 );
exit;
}
} );将其放入一个小型自定义插件或子主题的 functions.php 中,这样主题更新时就不会把它覆盖。wp_safe_redirect() 只会跳转到你自己的网站和其他被允许的主机,并且 否则会回退到 wp-admin[9],这能保护你免受开放重定向攻击。若要把访客发送到另一个域名,请通过 allowed_redirect_hosts 过滤器添加该主机,或使用带固定 URL 的 wp_redirect()。
方法 4:Meta refresh(最后手段)#
Meta refresh 是一种 HTML 标签,用来告诉浏览器加载另一个页面。只有在你无法修改服务器或安装插件时才使用它,例如某些受限制的托管方案:
html<meta http-equiv="refresh" content="0; url=https://mybrand.com/new-page/">将延迟设为 0。Google 会把即时 meta refresh 视为永久重定向,而 延迟的则视为临时重定向[1];无论哪种情况,访客都会先看到旧页面闪一下。
将整个 WordPress 网站重定向到新域名#
迁移到新域名是 WordPress 重定向最容易出错的地方。插件和代码重定向只会在旧站仍然安装着时运行,所以一旦你取消旧主机服务,它们就会停止。这样所有旧 URL 都会失效,而它原本积累的排名也会随之消失。你需要的是从每个旧 URL 到新域名上同一页面的 301 重定向,并且由仍然能响应旧域名请求的服务来提供:
- 保留旧主机: 在旧域名上保留一个空的 .htaccess,并使用方法 2 的整站规则。虽然便宜,但你仍然要为一台除此之外什么也不做的服务器付费并维护补丁。
- 使用重定向服务: 将旧域名的 DNS 指向一个能返回 301 的服务,然后取消旧主机服务。下面的 RedirHub 部分讲的就是这个。
然后通知 Google。只要两个域名都已在 Search Console 中验证,更改地址工具[10]会在 180 天内把信号迁移到新域名。请至少保持这些重定向这么久,并且让旧域名至少注册满一年,这样别人就无法抢注。
如何检查 WordPress 重定向是否正常工作#
- 在无痕窗口中打开旧网址。你的普通浏览器可能缓存了之前的 301,或者已登录到 WordPress。
- 查看状态码,而不只是最终落点:运行
curl -I https://oldbrand.com/old-page/,并查找 301 和正确的 Location。 - 确保只跳转一次。旧网址应直接到最终页面,而不是先经过 HTTP 版本,再到 www,然后才到新路径。
- 如果旧页面仍然显示,请清除你的缓存插件或 CDN 缓存。缓存副本可能会在重定向执行前被提供。
你的重定向正常工作吗? 输入你的域名。你将看到状态码(301 或 302)、最终落点、HTTPS 是否有效,以及它从华盛顿、法兰克福和东京的响应速度,并与过去 7 天内测试过的所有重定向进行排名比较。
测试我的重定向什么时候应该选择 RedirHub#
对于仍在运行的 WordPress 网站中已迁移的页面,请使用插件:它是免费的,而且足够用。RedirHub 适用于不应完全依赖 WordPress 的重定向。常见场景是迁移后的旧域名,但它也适用于你拥有的其他域名(拼写错误、旧品牌名、国家/地区域名),这些域名都应该跳转到你的 WordPress 网站。
RedirHub 在 DNS 层面为旧域名提供响应,覆盖来自靠近每位访客的 130 个全球边缘位置(PoP),因此旧主机可以下线。对于 WordPress 网站迁移,你可以通过一条规则保留相同路径,或者将每个旧 URL 映射到新页面;数百条映射可通过 批量 CSV 导入导入,所有套餐都支持。RedirHub 会为旧域名的根域和 www 颁发 自动 HTTPS,它们算作一个域名,因此指向旧站点的 https:// 链接也能继续正常工作。
- 在 RedirHub 中,新建一个链接并选择 网站迁移。
- 在“URL 如何变化?”下,如果只有域名变了,就选择 保持相同路径;如果固定链接也变了,就选择 逐个映射 URL。
- 输入旧 URL 和新 URL,或点击 打开 CSV 导入器,上传两列:旧 URL、新 URL。
- 检查“会发生什么”面板:每个旧 URL 都应显示 301 和正确的新页面。然后创建重定向。
- 打开 主机名,选择 连接 DNS 和 手动,并按照所示仅更改注册商处的根域和 www 记录(例如,将 A @ 指向 3.33.236.10,并将 CNAME www 指向你的 rediredge.com 主机)。电子邮件和其他子域名的 DNS 保持原样。
- 点击 我已完成更改。RedirHub 每 10 分钟重新检查一次 DNS,或者使用 立即检查。
- 使用 重定向速度测试测试几个旧 URL。

| WordPress 上的重定向插件 | RedirHub | |
|---|---|---|
| 最适合 | 在现有网站内已移动的页面和文章 | 一个旧域名或额外域名,应重定向而不保留自己的网站 |
| 需要旧网站继续运行 | 是,所有重定向都在 WordPress 中运行 | 不需要。DNS 将域名指向 RedirHub,旧主机可以停用 |
| DNS 和电子邮件 | Unchanged | 保持不变:只更改根域和 www 记录,不切换名称服务器 |
| 旧域名上的 HTTPS | 需要在旧主机上安装证书 | 针对根域和 www 自动签发并续期 |
| 多个 URL | 取决于插件;Redirection 可导入 CSV | 使用一条规则保留路径,或映射每个 URL;所有套餐均支持 CSV 导入;每个重定向可对应多个源域名 |
| 重定向类型 | 取决于插件;通常为 301、302、307 | 301、302、307、308 以及框架重定向 |
| 你能看到什么 | 根据插件不同,显示命中次数或日志 | 点击量和独立访客,已过滤机器人,并显示每个域名的热门链接 |
| Price | 免费(Redirection)或作为 SEO 插件的一部分 | 每月 49 美元起(Core,25 个域名),14 天免费试用 |
RedirHub 不能替代仍在托管你的 WordPress 站点的域名路径插件:该域名要么指向你的 WordPress 主机,要么指向 RedirHub,不能同时指向两者。请在 WordPress 中保留页面级重定向,并将 RedirHub 用于只需要重定向的域名。
WordPress 重定向常见错误#
- 链式重定向。 旧 URL 跳转到旧的重定向,再跳到新页面。每多一次跳转就多一次往返;请将每个旧 URL 直接指向最终页面,并在添加新规则时更新旧规则。

- 循环重定向。 一个重定向又指回自身,通常是插件规则与 WordPress 地址和站点地址设置或 HTTPS 设置相冲突。浏览器会显示“重定向次数过多”。
- 302 仍然保留。 wp_redirect() 和某些插件默认发送 302。如果迁移是永久性的,请将其改为 301。
- 全部跳到主页。 将每个旧 URL 指向最接近的新页面。把特定文章重定向到主页,会让访客和 Google 都找不到他们正在寻找的内容。
- 过早取消旧主机。 域名迁移后,插件重定向会随着旧站点一起失效。请保留某种方式来响应旧域名。
如果重定向仍然表现异常,重定向故障排查指南会带你逐一排查常见原因。
资料来源
- [1]Google Search Central: Redirects and Google Search
- [2]WordPress Developer Resources: wp_old_slug_redirect()
- [3]WordPress.org: Redirection plugin
- [4]Rank Math: How to set up redirections
- [5]Yoast: Redirect manager in Yoast SEO Premium
- [6]WordPress.org: Safe Redirect Manager
- [7]WordPress Developer Resources: insert_with_markers()
- [8]WordPress Developer Resources: wp_redirect()
- [9]WordPress Developer Resources: wp_safe_redirect()
- [10]Search Console Help: Change of Address tool
常见问题
如果你的主机运行的是 Apache,可在网站根目录的 .htaccess 文件中、# BEGIN WordPress 块上方添加一行 Redirect 301。对于 Nginx 主机,请让你的主机商添加该规则。开发者也可以在一个小型自定义插件中,通过 template_redirect 钩子使用 wp_safe_redirect()。
Redirection 是使用最广泛的免费选项,拥有超过 200 万个活跃安装,支持 404 日志记录和 CSV 导入。如果你已经在使用 Rank Math,其免费的 Redirections 模块可以完成同样的工作,而无需再安装另一个插件。
部分如此。当你更改文章的 slug 时,WordPress 会从旧 slug 发送一个 301 到新的永久链接。它不会对页面或指向其他网站的链接这样做,所以需要你自己添加这些重定向。
为每个旧 URL 添加一个 301 到新域名上的相同路径,可以通过在旧域名的 .htaccess 中设置全站规则,或者将旧域名的 DNS 指向一个重定向服务。然后使用 Google Search Console 的更改地址工具,并至少保留重定向 180 天。
对于任何已永久迁移的内容,都应使用 301,这几乎适用于所有重定向。只有在计划撤销的临时迁移中,例如维护时,才使用 302。
常见原因包括:旧页面被缓存(清除你的缓存插件和 CDN),浏览器记住了之前的重定向(在隐私窗口中测试),两个插件的规则冲突,或者 .htaccess 规则被放在 WordPress 区块内,导致它们被覆盖。

TC is the Operations Manager at RedirHub, leading the company’s operational strategy and execution to ensure reliable, scalable redirect infrastructure. He oversees internal processes, cross-team coordination, and platform readiness while supporting customers through complex redirect implementations. With a strong understanding of large-scale domain operations and real-world edge cases, TC plays a key role in aligning product and customer success to deliver stable, high-performance redirection solutions.
相关文章
查看所有文章


