天天看点

301和302重定向的区别,301和302重定向怎么实现

重定向很简单。如果你要将内容永久移动到新位置,请使用 301 重定向。如果你只是暂时移动它,请使用 302 重定向。

但你可能会想,这很重要吗?毕竟,用户无法察觉 301 和 302 的区别,两者在功能上是相同的。

答案很简单:搜索引擎对待 301 重定向和 302 重定向的方式不同。并且,选择错误的重定向可能会导致 SEO 问题,而这些问题往往在数月甚至数年内被忽视。

在本文中,你将了解:

-何时使用 301 和 302重定向的更多建议

-如何创建 301 和 302重定向

何时使用 301 重定向

  • 你将永久更改网页的 URL时。
  • 你将永久迁移到新域名时。
  • 当你从HTTP 切换到 HTTPS时。
  • 你希望修复非 www / www重复内容问题时。
  • 永久合并两个或多个页面或网站时。
  • 你将永久更改网站的 URL 结构时。

何时使用 302 重定向

302 重定向的用例很少,但也有一些:

  • 当你想将用户重定到正确的网站版本(基于位置/语言)时。
  • 当你要对网页的功能或设计进行 A / B 拆分测试时。
  • 你希望在不影响旧页面排名的情况下获得新页面的反馈时。
  • 当你正在进行促销,并希望暂时将访问者重定向到促销页面时。

毫无疑问,还有其他用例,但是它们往往是非常具体和个性化的。金科玉律是,如果你打算在短时间后恢复旧页面,则只应使用 302 重定向。

如何创建重定向

你可以用多种方法创建 301 和 302 重定向,但最常见的方法是编辑网站的 .htaccess 文件。你可以在网站的根目录中找到此文件。

301和302重定向的区别,301和302重定向怎么实现

小提示.

 如果你在站点的根目录中没有看到此文件,说明你的服务器没有在 Apache 上运行,或者你没有此文件。你可以使用此工具检查正在运行的服务器类型。如果服务器类型是 Apache,解决方法就是使用 Notepad 或 TextEdit 创建一个 .htaccess 文件并将其上载到根服务器。如果你的服务器类型是 Nginx,请阅读这篇文章。如果你运行的是 Windows 或IIS,请阅读这篇文章。

如果你使用的是 WordPress,一个比较简单的选择是使用免费的SEO插件来创建重定向。RankMath内置了此功能,但是这个插件也可以完成这项工作。

如何创建 301 重定向

如果要创建从一个 URL 到另一个 URL 的 301 重定向,请将以下内容添加到你的 .htaccess 文件中:

Redirect 301 /old-page.html /new-page.html       

你也可以使用 RankMath 或“重定向”插件来执行此操作。只需选择所需的重定向类型,然后添加源 URL 和目标 URL。

301和302重定向的区别,301和302重定向怎么实现

如果你要重定向整个网站,请将以下内容添加到你的 .htaccess 文件中:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC]
      

你需要保持你的旧主机处于活动状态,才能使用 .htaccess 重定向你的网站,这可能会很昂贵。因此,通常最好通过 DNS 重定向。大多数注册商都允许你为此选择 301 或 302 重定向。如果你使用的是 Google 域,只需点击 Website(网站)> forwarddomain(转发域),然后输入新域并选择“ Permanent redirect(永久重定向)”。

301和302重定向的区别,301和302重定向怎么实现

你可以在我们的 301 重定向的完整指南中了解如何在更多情况下创建 301 重定向(例如,从非 www 到 www,从HTTP到HTTPS)。

如何创建 302 重定向

如果要创建从一个 URL 到另一个 URL 的 302 重定向,请将以下内容添加到你的 .htaccess 文件中:

Redirect 302 /old-page.html /new-page.html      

你也可以使用 RankMath 或 WordPress 中的重定向插件来执行此操作:

301和302重定向的区别,301和302重定向怎么实现

如果你要重定向整个网站,请使用以下代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=302,NC]      

只是你也许不想使用 302 将一个站点重定向到另一个站点。大多数域更改都是永久性的,所以你需要使用 301。从 HTTP 重定向到 HTTPS,或者从非 www 重定向到 www(反之亦然),情况也是一样的。

继续阅读