什么是 301 重定向? 七件事要知道
已发表: 2021-04-02301 重定向就像一张地图,它将您网站的访问者从不再存在的页面或帖子带到存在的页面或帖子。
想象一下,试图让您的杂货送货上门,但司机使用的地图应用程序停在您街道的尽头,并没有将它们一直送到您家。 如果你的送货司机必须在你街上的所有房子都停下来找到你,那么你的冰棒会被融化。 或者更糟的是,他会拿走你的杂货然后回到商店。 301 重定向完成到正确目的地的旅程。
在本 301 重定向指南中,我们将涵盖您需要了解的有关 WordPress 网站 301 重定向的所有信息,包括您需要了解的有关 301 重定向的七件事以及如何在 WordPress 中创建 301 重定向。
什么是 301 重定向?
什么是 301 重定向? 简而言之,301 重定向会将用户从旧 URL 带到一个新 URL,该新 URL 替换了不再存在的旧 URL。
具体来说,301 重定向状态代码表示用户尝试访问的网站或博客上的任何页面已被永久移动到新 URL。 换句话说,他们使用的 URL 是旧 URL 并且已经更新。
使用 301 重定向,当用户尝试访问不再存在的 URL 时,他们将访问更新后的 URL。 除非用户已将其浏览器配置为阻止重定向(高安全性配置通常会这样做),否则他们将访问更新后的 URL。
在极客发言,300系列的HTTP(H yper t外接贸易交接P rotocol)状态码被用于表明,重定向应该发生由于各种原因。
WordPress 网站使用 301 重定向的主要原因是控制网站的访问方式。 我们将看看这些重定向背后的机制,如何在 WordPress 中创建 301 重定向,以及为什么要创建一个。
关于 301 重定向需要了解的 7 件事
在理解 301 重定向时,需要了解一些重要的(技术和非技术)事项。
- 计划在您删除网站或博客上的帖子或页面时创建 301 重定向。 每当您删除网站或博客上的帖子或页面时,您都需要考虑应替换哪个帖子或页面。 这就是 301 重定向的用武之地。
- 301 重定向可帮助您避免 404。 404 是当您删除帖子或页面并且不创建指向新帖子或页面的 301 重定向时发生的情况。 作为出于各种原因的最佳实践,应该不惜一切代价避免 404(也称为“找不到页面”)。
- 主要搜索引擎提供商建议您在更改页面或帖子的 URL 时立即添加 301 重定向。 通过这种方式,他们的搜索引擎可以跟踪更改并使他们在您网站上的结果保持最新。
- 创建 301 重定向有很多技术性很强的方法,或者您可以使用 WordPress 插件之类的工具。 301 重定向可以通过多种方式添加到您的网站,使普通用户的过程更加简单(稍后会详细介绍)。
- 301 重定向应该只在 URL 是公开的并且不会很快更改的情况下使用。 这也会影响您的 SEO 排名,所以要小心。
- 当心太多的 301 重定向。 如果您有多个重定向,您也可能会收到较低的 SEO 分数。 例如,如果一个 URL 多次更改,您可能会为每个 URL 设置一个 301 重定向。 哎呀。
- 通常,当客户端收到 301 响应时,他们对该 URL 的书签将自动更新为新的。 那是好消息。
还有一些需要注意的技术事项:
- 301 重定向可用于使 301 重定向使URL 前的“www”成为可选。 如果用户或链接不提供“www”,服务器通常被配置为插入“www”。
- 301 重定向还可以完成从 URL 之前的“http://”到“https://”的更改。 如果您最终将 WordPress 网站移至 HTTPS(强烈推荐!),则需要设置 301 重定向。 301 重定向可确保用户与您网站的连接是安全的。

如何在 WordPress 中创建 301 重定向?
在 WordPress 中创建 301 重定向有两种主要方法:
- 手动在 WordPress 中创建 301 重定向。 如果您对网站文件和服务器配置的更多技术领域感到满意,则此方法适合您。 如果没有,您将需要一个插件。
- 使用 WordPress 重定向插件。 这种方法可能比管理复杂的商业站点或多个站点的人更可取。 插件可以自动化该过程并在您拥有的所有站点上执行它。
首先,我们将看看如何为您的 WordPress 网站手动进行 301 重定向。 为了制作一个清晰简洁的教程,我们将对您如何操作您的网站做出一些假设。 这些将在下一节中概述。 插件可以自动化 301 重定向的过程,并在您拥有的所有站点上执行它。
其次,我们将看看您可能如何使用插件来执行此操作。 手动方法可能看起来很简单,但这里有一些原因,WordPress 站点管理员不应该为他们管理的每个站点手动创建自己的 301 重定向。
- 最佳实践明确指出,跨站点的所有更改都应该是统一的。 如果为您管理的每个站点手动进行重定向,总会有一些细微的差异。
- 正如您将看到的, 301 重定向可以非常快地从简单变为复杂。 复制和粘贴代码时,您仍然可能会遇到文本编码问题(取决于所使用的操作系统)以及其他问题。
- 随着时间的推移,您将需要进行新的更新。 记住这种语法几乎是不可能的。 一个插件可以让一切在多年来和你的成长过程中保持一致!
WordPress 301 重定向插件
WordPress 插件为您的 301 重定向需求提供了更简单的解决方案。 这些插件将自动执行该过程(您不必知道它是如何或为什么自动执行的,但如果您想知道这些插件使用纯 PHP、我们的 WordPress 功能或隐藏的服务器文件,我们将在下面讨论。
重定向插件
重定向插件允许您管理 301 重定向并跟踪 404 错误。 这是一个方便的插件,我们实际使用和推荐的插件。
简易重定向管理器插件
Easy Redirect Manager 还可以为您完成 301 重定向。 安装后,您只需要打开它。 您应该会看到一个链接表,并且能够添加任何具有适用状态代码的重定向。 只需选择一个旧 URL,输入新 URL,并确保将其标记为 301 重定向。
简单的 301 重定向插件
Simple 301 Redirects 是一个更加专注的插件。 专为那些希望执行 301 重定向的人设计,它不仅仅是保留重定向。 它还将确保那些关注 SEO 排名的人不会通过为他们的 WordPress 网站进行 301 重定向而失去他们已经拥有的东西。
像 Yoast SEO 这样的 SEO 插件
许多 WordPress SEO 插件,例如 Yoast SEO,都将 301 重定向作为插件中的一项高级功能,因为 301 重定向对您网站的 SEO 至关重要。 检查您的 WordPress SEO 插件在其免费或付费版本中是否具有 301 重定向作为内置功能。

获得(超级)技术:无需插件的 WordPress 301 重定向
接下来我们将讨论如何在没有插件的情况下进行 301 重定向。 在此示例中,我们将介绍如何将一个 URL 重定向到您网站上的另一个页面。 本文的下半部分将展示我们如何确保访问您网站的每个人都与您的网站建立安全连接。 这也称为“强制 WordPress SSL”。
我们将使用名为 wp_redirect 的内置 WordPress PHP 函数。
302 重定向意味着“暂时移动”并且不会更新您的搜索引擎列表。 这最终将不利于您现在或将来尝试的任何 SEO 策略。 不让您的重定向更新搜索引擎列表对您现在或将来会尝试的任何 SEO 策略都是有害的。
在我们的示例中,假设您有一个名为 our-example-wp-site.com 的站点。 让我们假设 URL 上的页面 – our-example-wp-site.com/old-url – 需要重定向到 our-example-wp-site.com/new-url。 因为我们安装了 WordPress,所以我们不必使用原始 PHP,而是可以使用 wp_redirect 函数。
使用 wp_redirect
使用文件管理器,导航到包含“old-url”页面内容的文件。 打开此文件进行编辑,并用这行代码替换所有内容(PHP 使用的开始和结束标记除外):
wp_redirect( "http://www.our-example-wp-site.com/new-url" , 301 );
如您所见,这是一个带有两个参数的简单函数。 第一个参数是指向我们旧URL 页面的链接。 第二个参数在技术上是可选的,但如果留空,将默认为 HTTP 状态 302,这不是我们想要的。
使用普通 PHP
根据您使用的 WordPress 版本,或出于各种原因,您可能不想使用 wp_redirect。 到目前为止, wp_redirect 是管理单个页面重定向的最简单的特定于 WordPress 的方法。
但是,还有一种方法可以在纯 PHP 中执行我们想要执行的 301 重定向。
由于 WordPress 基于 PHP,我们假设您的服务器必须安装 PHP。 为了开始,我们需要打开文件在文件管理器中进行编辑。 这应该是包含我们需要重定向到新 URL 的旧 URL 内容的文件。
再一次,让我们假设我们有域 our-example-wp-site.com 并且我们想从 our-example-wp-site.com/old-url 重定向到 our-example-wp-site.com/新网址。 这是应该在我们的“旧网址”页面上使用纯 PHP 的代码:
<? header("HTTP/1.1 301 永久移动"); header("位置:http://www.our-example-wp-site.com/new-url"); ?>
此代码的第一行是要发送的确切 HTTP 状态响应。 请注意,HTTP/1.1 的前缀必须与所写的完全一致。 下一项必须是状态代码的编号。 说“永久移动”的部分必须是与我们的 HTTP 状态代码正确对应的字符串。
这里变得棘手。 从技术上讲,每个项目都是客户端浏览器读取的字符串中的一个参数。 它们都是手动输入的,但它们必须完全正确。 否则,客户端将收到“bad header”错误。
PHP 代码中的第二行必须是新 URL 的位置。 这必须包含 URL 的完整路径; 换句话说,我们必须包含整个 URL,即使它是我们自己站点中的一个文件。 原因是因为它作为下一个浏览器标头发送给客户端,并且将被解释为已写入。 由于客户端不会在本地拥有您站点的所有文件,因此它需要引用完整的、更新的 URL。
301 重定向 WordPress .htaccess
无论您是否使用 WordPress 作为您的内容管理系统(或者即使您安装了 PHP),您都可以使用 .htaccess 进行 301 重定向。 如果您使用图形文件管理器,则需要查看隐藏的文件和文件夹。
.htaccess 文件将在您的服务器上的“webroot”中。 也就是说,它将位于保存站点内容的顶级目录中。 在向 .htaccess 文件中添加任何内容时,您应该始终先备份该文件。 这些可能会变得非常长和复杂。 这些文件的另一个经验法则是始终附加编辑,这意味着始终将编辑添加到文件的底部。
首先,找到您的 .htaccess 文件并将其备份到您的本地计算机。 完成后,您可以在文本编辑器中打开服务器上的实时版本。 转到文件底部。 在此示例中,我们将确保无论用户是否输入“www”,您的网站都能正常运行。 在您的网址之前。
.htaccess 301 重定向代码
请记住,.htaccess 文件对间距敏感。 在您输入的每个项目之间放置一个空格。我们建议您输入而不是复制和粘贴,因为这些文件因复制和粘贴导致的编码错误而臭名昭著。 首先,我们将向您展示代码。 其次,我们将解释它的含义:
重写引擎开启 重写基数 / rewritecond %{http_host} ^our-example-wp-site.com [nc] 重写器 ^(.*)$ http://www.our-example-wp-site.com/$1 [r=301,nc]
在我们的第一行中,我们打开了 Apache RewriteEngine。 这实质上是启动允许我们重写客户端将要看到的内容和 URL 的组件。 第二行让我们从重写的位置进行设置。 通过将“/”作为基础,我们告诉我们的服务器我们希望从我们的 webroot 开始的所有内容都被重写。
分析我们的 .htaccess 301 重定向代码
第三行中的“rewritecond”为何时重写我们的 URL 设置了一个“触发器”。 %{http_host} 部分意味着它会在任何尝试通过 HTTP/S 连接到我们网站时被触发。 我们域之前的胡萝卜字符意味着无论用户是否已经输入了“www”或他们是否正在使用子域等,都会设置触发器。最后,您会注意到我们输入了 [nc]。 这是 Apache 对“no case”的简写,意思是它不应该注意 URL 的任何部分是大写还是小写。
最后一行是当我们点击第三行中的“触发器”时 .htaccess 应该做什么。 如果它看起来像一门外语,那是因为它使用了“正则表达式”。
在计算机科学中,也简称为“regex”,常用于格式化和重写各种数据。 正则表达式本身通常有整个学期的课程,所以不要觉得你需要学习它! 本质上,这一行使用正则表达式来保留所有 URL,添加我们的“www”。 在它之前,URL 中的 $1 表示将所有内容保留在我们域中的“.com”之后。
在最后一行的最后,你会看到我们有 [r=301,nc]。 括号中的第一个参数 r=301 再次使用 Apache 速记。 'r' 是“Redirect HTTP response code to”的缩写,我们表示它应该是 301。我们的第二个参数 'nc' 再次用于表示我们不关心字符是大写还是小写.
测试我们的 .htaccess 更改
保存并运行后,首先尝试通过转到浏览器并按 Ctrl+Shift+Del 来删除临时文件和缓存。 选择所有内容,然后按“应用”或“确定”,具体取决于您使用的浏览器。
尝试在没有“www”的情况下访问您的域。 在它之前。 如果它不在那里,它现在应该插入它。 请记住,我们实际上是在插入 http://www.. 如果您安装了有效的 SSL 证书,您还需要强制使用 SSL。 这就像添加一个“s”一样简单,并将我们的 URL 之前插入的内容更改为 https://www。
总结:301 重定向和你
没有什么比障碍更让读者或搜索机器人感到沮丧的了。 沮丧的读者不会闲逛,也不会经常回来。
如果您想让您的读者在您的网站上阅读,那么让您的读者移动到活动页面非常重要。 实施在 WordPress 中使用 301 重定向的计划对读者、搜索引擎和您都有好处。
自 2011 年以来,Kristen 一直在编写教程来帮助 WordPress 用户。您通常可以找到她为 iThemes 博客撰写新文章或为 #WPprosper 开发资源。 工作之余,克里斯汀喜欢写日记(她写了两本书!)、远足和露营、烹饪以及与家人一起进行日常冒险,希望过上更现代的生活。
