301 重定向初学者指南

这是 301 重定向的初学者指南,适用于那些希望针对搜索引擎优化其网站的人。



什么是重定向?

顾名思义,重定向是一种路由技术 搜索引擎 当请求的网页不可用时,爬虫和访问者访问可用网页。 有很多方法可以设置从旧页面到新页面的重定向。 设置重定向后,Web 服务器将返回 3xx HTTP 状态代码。 在故障排除期间,您可以找到状态代码以了解所使用的重定向类型。

什么是 301 重定向?

在所有 3xx 重定向中,“301 – 永久移动”是网站管理员最常用的重定向。 为了避免 404 not found 错误,每当现有网页的 URL 更改或删除时,都需要设置 301 重定向。 这将通知搜索引擎用新的 URL 替换旧的 URL,并在请求时用新的 URL 为用户提供服务。

301是通过重定向用户代理到达客户端请求的URL时Web服务器返回的HTTP状态码。 用户代理通常是试图访问网页的网络浏览器或搜索引擎爬虫。 301 状态代码不会显示在浏览器窗口中,并且服务器会自动将用户代理重定向到另一个资源。 因此,它通常被称为服务器端 301 重定向设置。

301重定向的图示如下图所示:

301 重定向设置
301 重定向设置

如何查看 301 状态码?

如果您想测试您的 301 重定向,那么简单的方法是在浏览器窗口中打开旧 URL。 如果您正确设置了重定向,您应该会自动重定向到您的新 URL。 您还可以使用“通过谷歌获取信息“ 或者 ”作为 Yandex 获取” 网站管理员工具帐户中可用的工具,用于检查从服务器接收到旧 URL 的 301 状态代码。

为什么需要 301 重定向?

301 重定向是将用户从旧 URL 转移到新 URL 的有用工具。 在以下情况之一可能需要这样做:

  • 为了避免在现有页面 URL 更改等情况下出现 404 not found 错误, 旧网页被删除或 merging 两个站点。
  • 要使用的规范 URL www 或非 www 版本。
  • 将域从一个服务提供商转移到另一个服务提供商。

在所有情况下,设置 301 重定向都是一项重要任务,以避免失去来之不易的网站流量。

1. 避免 404 Not Found 错误

当您构建一个包含数百个页面的大型站点时,一些页面可能没有正确链接是一个常见的错误。 有时,您网站中的外部链接也可能由于该页面不可用而变得无效。 这两种情况都会导致链接断开,当单击断开的链接时,服务器将响应 HTTP 代码 “404页面不存在”。 未找到页面是网页 URL 更改且旧链接未重定向到新页面时的常见消息。

搜索引擎将这些 404 错误视为您网站中的问题,因为它无法向用户提供请求的资源。 例如, 谷歌搜索控制台 将您网站仪表板中的所有 404 错误消息显示为抓取错误。 如果您在搜索引擎无法访问的页面上放置任何广告,您也将失去广告收入。

标准 Weebly 404 页面
标准 Weebly 404 页面

也可能是用户输入了错误的 URL 或用于访问某些不存在的子目录。 获得 404 错误优势的简单方法是创建自己的“404 – 未找到”页面,并提供有用的信息,如搜索框和网站中的重要链接。 这将帮助用户搜索或浏览您的网站并获取所需信息。

2. 在 www 和非 www 版本之间重定向

设置重定向的重要需求之一是将所有流量定向到一个来源,即网站的 www 或非 www 版本。 例如:

  • 您注册了一个域名 example.com,并且没有在 Google 网站管理员工具帐户中设置任何首选域。
  • Google 将 http://example.com 和 http://www.example.com 视为两个不同的站点,并分别考虑每个站点的链接。

这将真正影响您网站的 SEO 排名,因为您网站的任何版本的链接数都会减少。 对于新网站,在网站管理员工具帐户中将首选域设置为 http:// 或 http://www,提交该版本的站点地图并确保 Google 索引该版本的所有页面。 如果您有一个正在运行的站点,其中包含入站链接拆分,则将一个版本的重定向设置为您站点的另一个版本。

3. 域名变更与转移

每当站点名称发生变化或服务提供商发生变化时,都需要设置重定向。 例如:

  • 最初,您可能会开始将您的站点构建为一个名称为 http://example.WordPress.com 的免费站点,然后想将其更改为 http://example.com。
  • 您开始构建一个 HTML 站点,后来决定选择 PHP 服务提供商。

如果您有不同版本的桌面版和移动版网站,则必须在桌面版网站中设置移动重定向,这样当用户在移动设备中打开您的网站时,将被重定向到您的移动页面。

如何在各种平台设置 301 重定向?

这取决于托管服务提供商和您使用的网站类型。 例如,Weebly 提供了一种简单的方法来 设置重定向 如果新旧域相同,则无需更改任何根目录。 否则,您可能需要遵循下面列出的任何一种方法 设置 301 重定向.

以下所有示例均指示在旧页面中设置重定向,以便重定向到同一域中的新页面。 如果您的域名已更改,请将域名替换为您的新域名。 通常重定向是在服务器端通过配置 Apache 或 IIS 服务器来确保服务器返回 301 HTTP 状态码 对于搜索引擎。 这是使用 PHP、ASP 或 ASP.NET 脚本完成的。 不推荐使用 HTML 元刷新或 JavaScript 的客户端重定向,因为这些方法不会返回 301 代码。

查看  如何在 WordPress 网站的 Google PageSpeed Insights 中获得 100/100 分?

服务器端 301 重定向

PHP

将此更改保存在您的旧 php 页面中。

<?php 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.yoursite.com/newpage.php"); 
exit(); 
?>

在 PHP 重定向中,旧页面应使用 .php 扩展名,新页面可以使用任何扩展名。 如果您想对现有 HTML 页面使用 PHP 重定向,请在 .htaccess 或 httpd.conf 文件中启用以下行。

Addtype application/x-httpd-php .htm .html
ASP

将其保存在旧的 asp 页面中。

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", " http://www.yoursite.com/newpage.html"
%>
ASP.NET

将此保存在您的 oldpage.aspx 中。

<script language="c#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location"," http://www.yoursite.com/newpage.html");
}
</script>
Apache 服务器的 .htaccess 重定向

为了在 Apache 服务器中设置 301 重定向,您应该有权访问名为 .htaccess 的配置文件。 单页重定向和域级重定向都可以使用 .htaccess 文件进行设置。

将旧页面重定向到新页面:

Redirect 301 /oldpage.html http://www.yoursite.com/newpage.html

为了将旧域的所有页面重定向到新域,请配置旧域的 .htaccess 文件,如下所示:

Redirect 301 / http://www.newdomain.com/
使用 .htaccess 重定向规范站点

http://www.yoursite.com 和 http://yoursite.com 被搜索引擎视为两个不同的站点,因此建议在您的网站管理员工具帐户中选择首选域设置。 您还可以通过使用以下代码修改 .htaccess 文件将所有流量重定向到带有 www 的站点:

RewriteEngine on
rewritecond %{http_host} ^coolexample.com [nc]
rewriterule ^(.*)$ http://www.yoursitename.com/$1 [r=301,nc]
IIS 的 301 重定向
  • 在 Internet 服务管理器中选择要为其设置重定向的文件。
  • 右键单击并选择重定向到 URL。
  • 输入重定向的新文件名。
  • 选择“上面输入的确切 URL”。
  • 选择“此资源的永久重定向”。
  • 单击应用。

客户端 301 重定向

HTML 元刷新

尽管 HTML 元刷新确实返回 301 HTTP 状态代码,这被视为 301 重定向 搜索引擎 像谷歌。 将 HTML 页面的旧代码替换为以下代码,以重定向到新页面。

<!DOCTYPE html> 
<html>
<head>
 <meta http-equiv="refresh" 
 content="0; url= http://www.yoursite.com/newpage.html">
</head>
<body>
 <p>This page is permanently moved
 <a href=" http://www.yoursite.com/newpage.html">Here</a></p>
</body>
</html>
JavaScript 重定向

在旧页面中添加以下代码以重定向到新页面。 与 HTML 元刷新一样,JavaScript 重定向也不会返回 301 代码。

<html>
<body>
<script type="text/javascript">
 // Javascript URL redirection
 window.location.replace("http://www.yoursite.com/newpage.html");
</script>
</body>
</html>
jQuery 重定向

这是另一种不返回 301 代码的重定向,请在旧页面中添加以下代码:

<!DOCTYPE html>
<html>
<body>
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
 // jQuery URL redirection
 $(document).ready( function() {
 url = "http://www.yoursite.com/newpage.html";
 $( location ).attr("href", url);
 });
</script>
</body>
</html>

什么是无限循环?

通常,Web 服务器最多可以将用户代理重定向五次以获取请求的资源,并且重定向五次以上将导致无限循环,称为无限循环。 在这种情况下,用户代理可能会尝试获取资源而没有任何结果。

无限重定向循环
无限重定向循环

如果未正确设置 301 重定向,也会发生无限循环。 例如,当两个页面“http://example.com”和“http://example.com/index.html”指向站点的同一个主页时,设置任何一个 URL 到其他 URL 的 301 重定向最终会陷入无限循环。

类似文章