下面我将从最推荐到最不推荐的顺序,为你详细介绍几种在 WordPress 中实现 301 跳转的方法。

使用 SEO 插件(最推荐、最简单)
对于绝大多数用户,尤其是新手来说,使用 SEO 插件是最佳选择,它简单、直观,且功能强大,无需编写代码。
推荐插件:
- Yoast SEO:最流行的 WordPress SEO 插件,自带强大的重定向管理功能。
- Redirection:专门用于管理重定向的轻量级插件,功能非常专注和强大。
以 Yoast SEO 为例:
-
安装并激活插件:在 WordPress 后台“插件” -> “安装插件”,搜索“Yoast SEO”并安装激活。
-
设置重定向:
- 安装激活后,进入 WordPress 后台的 SEO -> 工具 -> 重定向。
- 在“旧 URL”输入框中填入你想要跳转的旧地址(
https://www.old-site.com/old-post)。 - 在“新 URL”输入框中填入你想要跳转到的新地址(
https://www.new-site.com/new-post)。 - 确保“类型”选择为 301 (永久)。
- 点击“添加重定向”按钮。
-
管理重定向:你可以在这里查看、编辑或删除所有已设置的重定向,插件还会自动记录 404(页面未找到)错误,方便你找到需要跳转的旧链接。
(图片来源网络,侵删)
以 Redirection 插件为例:
- 安装并激活插件:搜索并安装“Redirection”。
- 设置重定向:
- 进入后台的 工具 -> Redirection。
- 点击顶部的 “Add New” 按钮。
- 在 Source URL (源 URL) 中输入旧地址。
- 在 Target URL (目标 URL) 中输入新地址。
- 确保 Match (匹配) 和 Action (动作) 设置正确(通常保持默认即可)。
- 点击 “Add Redirect” (添加重定向)。
优点:
- 无需代码:图形化界面,操作简单。
- 管理方便:可以轻松管理所有重定向,查看跳转日志。
- 功能强大:支持正则表达式、通配符等高级匹配。
- 自动重定向:有些插件(如 Redirection)甚至可以在检测到 404 错误后,提示你创建重定向。
缺点:
- 需要额外安装一个插件。
使用 .htaccess 文件(适合高级用户)
如果你的网站使用的是 Apache 服务器(Linux 主机),你可以直接编辑网站根目录下的 .htaccess 文件来实现跳转,这是服务器级别的重定向,效率很高。
操作步骤:
- 通过 FTP 或文件管理器连接你的网站。
- 找到 WordPress 根目录下的
.htaccess文件。 - 下载备份:在修改之前,务必备份这个文件!
- 编辑文件:使用文本编辑器(如 VS Code, Sublime Text, 或服务器自带的文件管理器编辑器)打开
.htaccess文件。
常用 301 跳转代码示例:
示例 1:将整个旧域名永久重定向到新域名
# 将 old-site.com 重定向到 new-site.com
# 包括 http 和 https,以及带 www 和不带 www 的情况
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.com [NC]
RewriteRule ^(.*)$ https://www.new-site.com/$1 [L,R=301]
示例 2:将单个旧页面重定向到新页面
# 将 /old-post/ 重定向到 /new-post/ RewriteEngine On RewriteRule ^old-post/?$ https://www.your-site.com/new-post/ [L,R=301]
示例 3:将整个旧目录重定向到新目录
# 将 /old-category/ 下的所有内容重定向到 /new-category/ RewriteEngine On RewriteRule ^old-category/(.*)$ https://www.your-site.com/new-category/$1 [L,R=301]
代码解释:
RewriteEngine On:开启重写引擎。RewriteCond:重定向的条件(当主机是old-site.com时)。RewriteRule:重定向的规则(将请求的路径 捕获并放到新路径的$1位置)。[L,R=301]:L表示 Last Rule(如果匹配到此规则,则停止后续规则);R=301表示执行 301 永久重定向。
优点:
- 性能高:直接在服务器层处理,比 WordPress 插件更快。
- 灵活:可以实现非常复杂的重定向逻辑。
- 不依赖 WordPress:即使网站出问题,重定向依然有效。
缺点:
- 需要技术知识:需要了解正则表达式和服务器配置。
- 有风险:错误的代码可能导致网站无法访问。
- 每次修改都需要手动上传文件。
使用 PHP 代码(主题的 functions.php 文件)
这种方法将重定向逻辑直接写入你的主题文件中,适合不想安装插件,且对 PHP 有一定了解的用户。
操作步骤:
- 通过 FTP 或文件管理器连接你的网站。
- 进入
wp-content/themes/你的主题文件夹/目录。 - 找到
functions.php文件。 - 下载备份:同样,先备份这个文件!
- 在文件末尾添加以下代码:
示例 1:将单个页面重定向
// 将旧页面 /old-page/ 永久重定向到 /new-page/
add_action('template_redirect', 'my_custom_301_redirect');
function my_custom_301_redirect() {
if ( is_page('old-page') ) { // 'old-page' 是旧页面的 slug 或 ID
wp_redirect('https://www.your-site.com/new-page/', 301);
exit();
}
}
示例 2:将整个旧域名重定向到新域名
注意:这种方法不如 .htaccess 高效,因为每次页面加载都会执行 PHP 代码。
add_action('template_redirect', 'my_domain_redirect');
function my_domain_redirect() {
if ( $_SERVER['HTTP_HOST'] == 'old-site.com' || $_SERVER['HTTP_HOST'] == 'www.old-site.com' ) {
wp_redirect('https://www.new-site.com' . $_SERVER['REQUEST_URI'], 301);
exit();
}
}
优点:
- 无需插件:保持网站整洁。
- 与主题集成:可以基于 WordPress 的条件标签(如
is_page(),is_category())进行更精细的控制。
缺点:
- 性能较差:每次页面请求都会执行 PHP 代码,增加服务器负担。
- 有风险:错误的 PHP 代码会导致网站“白屏”(Fatal Error)。
- 切换主题会失效:代码绑定在特定主题的
functions.php中,如果更换主题,重定向就会消失。
使用主机控制面板(如 cPanel)
很多虚拟主机服务商(如 Bluehost, SiteGround, cPanel 主机)都提供了在控制面板中设置重定向的功能。
操作步骤(以 cPanel 为例):
- 登录你的 cPanel 控制面板。
- 在“域名”部分,找到并点击 “重定向” (Redirects) 图标。
- 在“类型”中选择 “永久 (301)”。
- 在“重定向”中输入你想要重定向的旧路径(
/old-post)。 - 在“指向”中输入你想要跳转到的完整新 URL(
https://www.your-site.com/new-post)。 - 点击“添加”按钮。
优点:
- 图形化界面:比手动编辑
.htaccess文件更安全。 - 服务器级别:性能和
.htaccess方法一样好。
缺点:
- 依赖主机:只有你的主机服务商提供此功能时才能使用。
- 管理不便:如果重定向数量很多,管理起来可能没有插件方便。
总结与选择建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| SEO 插件 | 简单、直观、管理方便、功能强大 | 需要安装插件 | 绝大多数用户,特别是新手和需要管理大量重定向的用户。 |
| .htaccess 文件 | 性能高、灵活、不依赖 WordPress | 需要技术知识、有风险、需手动操作 | 高级用户、服务器管理员、需要极致性能或复杂重定向逻辑。 |
| PHP 代码 | 无需插件、可与主题深度集成 | 性能较差、有风险、切换主题失效 | 不想用插件,且重定向逻辑简单且固定的开发者。 |
| 主机控制面板 | 图形化界面、服务器级别性能 | 依赖主机、管理不便不便 | 使用 cPanel 等主流控制面板,且只需要设置少量重定向的用户。 |
最终建议:
- 如果你是普通用户:直接使用 Yoast SEO 或 Redirection 插件,这是最省心、最安全的选择。
- 如果你是开发者或技术爱好者:对于网站级别的域名重定向,使用 .htaccess 方法;对于需要基于 WordPress 条件的少量重定向,可以考虑 PHP 代码 方法。
- 如果你只是临时需要一个简单的重定向:检查你的主机是否提供 控制面板 功能,也可以快速搞定。
