301重定向就像一张地图,它将把您网站的访问者从一个不再存在的页面或文章中吸引到一个页面或文章中。
在本文中,我们将介绍您需要了解有关WordPress网站的301重定向的所有信息,包括您需要了解有关301重定向以及如何在WordPress中创建301重定向。
什么是301重定向?
什么是301重定向?简而言之,301重定向会将用户从旧的网址转移到新的网址,以替换不再存在的旧网址。
具体而言,301重定向状态代码表示用户试图在网站或博客上访问的任何页面都已永久移动到新的网址。换句话说,他们使用的网址是旧网址,并且已被更新。
有了301重定向,用户在尝试访问不再存在的网址时将访问更新的网址。除非用户将其浏览器配置为阻止重定向,否则他们将访问更新的网址。
WordPress网站使用301重定向的主要原因是为了控制网站的访问方式。我们将研究这些重定向背后的机制,如何在WordPress中创建301重定向以及为什么要进行重定向。
关于301重定向的7件事
在了解301重定向时,需要了解一些重要的(技术和非技术)方面的知识。
- 计划在您删除网站或博客上的文章或页面时创建301重定向。每当您删除网站或博客上的文章或页面时,都需要考虑应替换哪个文章或页面。那就是301重定向的用处。
- 301重定向可帮助您避免404错误。当您删除文章或页面并且不创建301重定向到新文章或页面时,会发生404。由于各种原因,最佳实践是不惜一切代价避免使用404(也称为“找不到页面”)。
- 主要的搜索引擎提供商建议您在更改页面或文章的网址时立即添加301重定向。这样,他们的搜索引擎可以跟踪更改并将其结果保持在您网站的最新状态。
- 创建301重定向的技术方法非常高,也可以使用WordPress插件之类的工具。301重定向可以通过多种方式添加到您的网站,从而使该过程对于普通用户而言更加简单(稍后将进行介绍)。
- 301重定向仅应在网址为公共网址且不打算很快更改的情况下使用。这也会影响您的SEO排名,因此请当心。
- 当心太多301重定向。如果您有多个重定向,也可以使用较低的SEO分数进行ping操作。例如,如果一个网址更改了多次,则每个网址可能都有301重定向。这是非常糟糕的。
- 通常,当客户端收到301响应时,他们对该网址书签将自动更新为新的网址。
还有一些技术要注意的事项:
- 通过301重定向,可以将根域名重定向到www域名,反之亦然。服务器通常配置为在用户或链接不提供的情况下插入“ www”。
- 301重定向还可以将 http:// 重定向到 https:// 网址。如果您最终要将WordPress网站移至HTTPS(强烈建议!),则需要进行301重定向。301重定向可确保用户到您网站的连接受到保护。
如何在WordPress中创建301重定向?
在WordPress中创建301重定向的主要方法有两种:
- 在WordPress中手动创建301重定向。如果您对网站文件和服务器配置的更多技术领域感到满意,则此方法适合您。如果没有,您将需要一个插件。
- 使用WordPress重定向插件。这种方法可能比管理复杂的商业站点或多个站点的方法更可取。插件可以自动执行该过程,并在您拥有的所有站点上执行该过程。
首先,我们将介绍如何为WordPress网站手动进行301重定向。为了使您的教程简洁明了,我们将对您如何操作网站进行一些假设。这些将在下一部分中概述。插件可以自动执行301重定向的过程,并在您拥有的所有站点上执行该过程。
其次,我们将研究您如何使用插件来执行此操作。手动方法似乎很简单,但是由于某些原因,没有WordPress网站管理员应该为他们管理的各个网站手动进行自己的301重定向。
- 最佳实践清楚地表明,跨站点的所有更改都应该是统一的。如果为您管理的每个站点手动进行重定向,则总是会有一些细微的差异。
- 如您所见,301重定向可以很快地从简单变为复杂。在复制和粘贴代码时,您仍然可能会遇到文本编码问题(取决于所使用的操作系统)以及其他问题。
- 随着时间的流逝,您将需要进行新的更新。记住这种语法几乎是不可能的。插件可以确保您多年来的一切,并通过您的成长!
警告:在开始下面的一个或两个教程之前,您应该使用WordPress备份插件或手动备份站点上的所有数据。尽管可能性很小,但您可能会错误地使站点无法访问。备份可确保您只需单击一下就能将网站还原到以前的辉煌!
WordPress 301重定向插件
WordPress插件可为您的301重定向需求提供更简单的解决方案。这些插件将使该过程自动化(您不必知道其自动化方式或原因,但是,如果您想知道这些插件使用的是纯PHP,我们的WordPress函数或一个隐藏的服务器文件,我们将在下面讨论。注意:请确保选择具有可靠开发和支持历史的WordPress重定向插件。
Redirection
通过Redirection插件,您可以管理301重定向并跟踪404错误。这是一个方便的插件,我们实际使用并推荐使用。
Easy Redirect Manager
在Easy Redirect Manager也可以完成301个重定向你。安装后,您只需要打开它即可。您应该看到一个链接表,并能够添加任何具有适用状态代码的重定向。只需选择一个旧的网址,并输入新的网址,并确保将其标记为301重定向。
Simple 301 Redirects
Simple 301 Redirects是一个更具针对性的插件。它仅适用于希望执行301重定向的用户,它不仅仅保留重定向。通过确保WordPress站点的301重定向,还可以确保那些关注SEO排名的人不会失去他们已经拥有的东西。
SEO插件,例如Yoast SEO
许多WordPress SEO插件,例如Yoast SEO,都将301重定向作为高级功能包含在插件中,因为301重定向对您网站的SEO至关重要。检查您的WordPress SEO插件是否具有301重定向作为其免费或付费版本的内置功能。
通过技术事项WordPress 301重定向
接下来,我们将讨论如何在没有插件的情况下进行301重定向。在此示例中,我们将介绍如何使一个URL重定向到您网站上的另一页面。本文的下半部分将显示我们如何确保访问您网站的每个人都与您的网站建立安全的连接。这也称为“强制WordPress SSL”。
我们将使用内置的WordPress PHP函数wp_redirect
。注意:默认情况下,wp_redirect
函数调用HTTP状态码302,而不是301。这就是为什么我们函数中的一个参数为“ 301”的原因。如果我们省略特定的状态代码,WordPress会假定我们想要302重定向!
302重定向的意思是“暂时移动”,并且不会更新您的搜索引擎列表。这最终将不利于您现在或将来尝试的任何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 );
如您所见,它是一个带有两个参数的简单函数。第一个参数是新网址。第二个参数在技术上是可选的,但是如果留空,则默认为HTTP状态302,这不是我们想要的,所以设置为301。
使用纯PHP
根据您使用的WordPress版本,或出于各种原因,您可能不想使用wp_redirect
。到目前为止,wp_redirect
是管理单个页面重定向的最简单的特定于WordPress的方法。
但是,还有一种方法可以在纯PHP中执行我们要执行的301重定向。
警告:如果您不知道PHP是什么,那就不要折腾了。
由于WordPress基于PHP,因此我们假设您的服务器必须安装PHP。为了开始,我们需要打开文件以在文件管理器中进行编辑。这应该是包含我们需要重定向到新网址的旧网址内容的文件。
再一次,假设我们拥有域our-example-wp-site.com
,并且我们想要从我们的example-wp-site.com/old-url
重定向到our-example-wp-site.com/new-url
。这是应该在纯PHP的“旧网址”页面上显示的代码:
<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.our-example-wp-site.com/new-url" );
?>
此代码的第一行是要发送的确切HTTP状态响应。请注意,HTTP / 1.1的前缀必须与编写的完全相同。下一项必须是状态码的编号。说“永久移动”的部分必须是与我们的HTTP状态代码相对应的正确字符串。
在这里变得棘手。从技术上讲,每个项目都是客户端浏览器读取的字符串中的参数。它们都是手动输入的,但必须完全正确。否则,客户端将收到“错误标头”错误。
我们的PHP代码的第二行必须是新网址。它必须包含URL的完整路径。换句话说,即使它是我们自己网站中的文件,我们也必须包含整个URL。原因是因为它作为下一个浏览器标头发送到客户端,并且将被解释为已写入。由于客户端不会在本地拥有您网站的所有文件,因此需要引用完整的更新URL。
301重定向WordPress .htaccess
无论您是否使用WordPress作为内容管理系统(甚至安装了PHP),都可以使用.htaccess进行301重定向。如果您使用的是图形文件管理器,则需要查看隐藏的文件和文件夹。
.htaccess
文件将位于服务器上的“webroot”中。也就是说,它将位于存放您网站内容的顶层目录中。将任何内容添加到.htaccess文件时,应始终先备份该文件。这些可能会变得非常漫长和复杂。这些文件的另一个经验法则是始终附加编辑,这意味着始终将编辑添加到文件的底部。
首先,找到您的.htaccess文件,并将其备份到本地计算机。完成此操作后,您可以在文本编辑器中打开服务器上的实时版本。转到文件底部。在此示例中,我们将确保无论用户是否在您的网址之前输入“ www”,您的网站都可以正常运行。
.htaccess 301重定向代码
请记住,.htaccess文件是空格敏感的。在您键入的每个项目之间放置一个空格。我们建议键入而不是复制和粘贴,因为这些文件因复制和粘贴而导致编码错误。首先,我们将向您显示代码,然后将解释它的含义:
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^our-example-wp-site.com [nc]
rewriterule ^(.*)$ http://www.our-example-wp-site.com/\ [r=301,nc]
在第一行中,我们将打开Apache RewriteEngine。从本质上讲,这是在启动该组件,该组件使我们可以重写客户端将要看到的内容和网址。第二行让我们从重写位置进行设置。通过以“ /”为基础,我们告诉服务器我们希望重写从Webroot开始的所有内容。
警告:如果你完全不知道我们在说什么,请不要继续操作,联系主机商或专业人士为你处理。
分析我们的.htaccess 301重定向代码
第三行中的“ rewritecond”为何时重写我们的网址设置了“触发”。%{http_host}
部分表示在与我们站点的任何HTTP/S连接尝试中都会触发它。域之前的字符^
表示无论用户是否已经输入“ www”或是否正在使用子域等,都将设置触发器。最后,您会注意到我们输入了[nc]
。这是Apache的“无大小写”的简写,表示它不应该注意URL的任何部分是大写还是小写。
最后一行是当我们在第三行中单击该“触发器”时,.htaccess
应该执行的操作。如果它看起来像一门外语,那是因为它使用了“正则表达式”。
在计算机科学中,也简称为“ regex”,它通常用于格式化和重写各种数据。正则表达式本身通常有整学期的课程,因此您不需要学习它!本质上,此行使用正则表达式保留所有网址,并添加我们的“ www”。之前,URL中的$1
表示将“ .com”之后的所有内容保留在我们域中。
在最后一行的最后,您将看到我们有[r=301,nc]
。方括号中的第一个参数r=301
再次使用Apache速记。“ r
”是“将HTTP响应代码重定向到”的缩写,我们指示它应该为301
。我们的第二个参数“ nc
”再次用于表示我们不关心字符是大写还是小写。
测试我们的.htaccess更改
保存并运行此文件后,请尝试先删除临时文件和缓存,方法是进入浏览器并按Ctrl + Shift + Del
。选择所有内容,然后按“应用”或“确定”,这取决于您使用的浏览器。
尝试在没有输入“ www.”的情况下访问您的域名。如果规则正常,就会自动重定向到 www 的域名。请记住,我们实际上是在插入http://www.
如果您安装了有效的SSL证书,并且需要强制使用SSL。这很简单,只需添加一个’s
‘,即可将插入的内容更改为https://www
.
总结
没有什么比障碍更让读者或搜索机器人感到沮丧。如果要保持读者在网站上的阅读,请务必使读者进入可访问的正确页面。在WordPress中正确使用301重定向,可以提高用户体验和搜索引擎优化。
注:本文内容来自 ithemes.com,由WordPress大学翻译整理。
拓展阅读:
- 网站管理员和Web开发人员.htaccess入门指南
- 15个有用的WordPress .htaccess 代码片段
- WordPress在Apache主机下强制HTTP重定向到HTTPS
- WordPress更改固定链接结构 旧链接自动301重定向到新链接
- WordPress文章/页面链接重定向插件:Page Links To(已汉化)
- WordPress文章链接重定向插件:WP Post Redirect
- WordPress 301重定向插件:Redirection
- WordPress 404错误统计及重定向插件
- 宝塔面板为WordPress网站添加SSL证书设置https访问
- 我们应该在WordPress网站上使用“www”还是“非www”域名?
留言备用,搞过几次都不行,只好重装了