×

使用 .htaccess 文件进行 301 重定向的指南

作者:Terry2023.07.03来源:Web前端之家浏览:1342评论:0
关键词:htaccess重定向

使用 .htaccess 文件的 301 重定向是一种 HTTP 状态代码,当您想要将一个 URL 永久重定向到另一个 URL 时创建。

您可能希望在网站上实施 301 重定向的原因有很多。 

但你要怎么做呢?为什么要以 .htaccess 方式进行呢? 

我们已经得到答案了。

但在讨论具体细节之前,让我们先介绍一下基础知识。

什么是 301 重定向?

301 重定向是 URL 的永久重定向。

当用户尝试访问已重定向的旧 URL 时,浏览器会自动将其发送到重定向中指定的新 URL。

这对用户很有用,因为它可以确保 URL 更改或内容移动时的无缝过渡,从而保持积极的用户体验。

301 重定向对于搜索引擎很有用。因为它们有助于保持搜索引擎索引的更新。 

它们通知搜索引擎内容已被移动,并帮助确保与旧页面相关的可见性和权限转移到新 URL。 

像这样:

image.png

什么是 .htaccess 文件?

.htaccess 文件是一个文本文件,用于配置网站的不同方面。

您可以使用它来重定向 URL、修改 URL 结构、自定义错误页面等等。 

使用 .htaccess 文件是对站点进行重要更改的一种非常简单的方法。

但您必须非常小心,确保正确编辑文件中的规则。因为一个错误可能会给用户带来很多问题。 

什么时候应该执行 301 重定向?

在很多情况下您可能想要执行 301 重定向,例如:

  • 您更改了页面的 URL,并希望将旧 URL 重定向到新 URL

  • 您已将网站迁移到新域,并希望将所有页面从旧域重定向到新域

  • 您将网站从 HTTP 切换到 HTTPS,并希望将所有 HTTP 请求重定向到 HTTPS

  • 您有重复的页面竞争相同的关键字,并且希望将它们合并到一个页面中

  • 您删除了一个页面并希望将其重定向到另一个相关页面或主页

使用 301 重定向确保来自已删除页面的流量最终到达相关页面,从而最大限度地减少如下错误消息:

image.png

但是,实现重定向的方法有多种,例如使用服务器端代码、JavaScript 或 .htaccess 文件。

每种方法都有其自身的优点和缺点,具体取决于您的需求和偏好。

但执行 301 重定向的最常见和最有效的方法之一是使用 .htaccess 文件。

使用 .htaccess 文件进行 301 重定向有一些好处:

  • 它可以使用正则表达式处理复杂的重定向模式

  • 它可以用于单个页面和整个目录

  • 它适用于您网站上的任何类型的文件或资源

如何使用 .htaccess 文件设置 301 重定向

根据您使用的服务器,301 重定向的执行方式有所不同。.htaccess 方法通常用在 Apache 服务器上。

如何在 Apache 中使用 .htaccess 文件设置 301 重定向

在执行任何操作之前,您需要找到 RewriteEngine,它允许您编辑规则。您可以在 Apache 的 mod_rewrite 模块中找到它。 

使用以下代码加载它:

<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>

然后您可以在“RewriteEngine On”下方添加所有规则。您添加的规则将取决于您想要重定向的具体内容。 

重定向单个 URL

重定向单个 URL 时,您所需要做的就是在“RewriteEngine On”行下添加以下重定向规则:


Redirect 301 /old-page/ https://www.yourdomain.com/new-page/


确保将 URL 替换为您网站上的实际 URL。

规则的第一部分应提及 URL 路径,以斜杠开头。而规则的第二部分应提及绝对(或完整)URL。

如果您是高级用户,还可以使用正则表达式来重定向 URL。RedirectMatch 301 规则支持正则表达式。 

查看 Apache 的官方文档以获取更多详细信息。

重定向单个文件夹

将单个文件夹重定向到新位置时,您将使用以下重定向规则:


RewriteRule ^/?blog/(.\*)$ /news/$1 [R,L]

我们以“博客”和“新闻”为例。在这种情况下,整个博客子文件夹将被重定向到“news”子文件夹。

在您的网站上实施此重定向时,请确保使用实际的网站文件夹名称。

使用 301 .htaccess 重定向将 WWW 重定向到非 WWW URL

也许您想实现重定向,因为您不想使用 www 子域。

如果是这种情况,您需要重定向到非 www 版本。这是您可以使用的重定向规则: 

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


确保将“yourdomain”替换为您的实际域名。

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/kaifatools20230703.html

网友评论文明上网理性发言 已有0人参与

发表评论: