📜  了解 301 重定向及其实现

📅  最后修改于: 2021-10-29 04:28:23             🧑  作者: Mango

计算机科学中的重定向是一项必不可少的有益服务,可帮助网站所有者和管理员在需要时将其关联域和子域指向特定的目标 URL。当特定的基于 Web 的应用程序不再使用其原始域进行数据服务时,将执行重定向。所有链接到它的用户都需要自动获知这一不可避免的变化。因此,在这种情况下,重定向成为焦点。此功能可帮助域管理员保持传入关系与其域或网站的相关性。因此,在本文中,我们将了解重定向、301 重定向及其 Duration,并进行 301 URL 重定向的现场演示。

  • URL 重定向:用简单的语言解释重定向意味着建立与新创建的 URL 的关系或访问者互联网流量,而不是旧的 URL。网络中的著名协议 HTTP、HTTPS 重定向代码是一种将用户和搜索引擎功能从一个 URL 地址转移到另一个 URL 地址的方法,如果 Internet 重定向上的基于 Web 的应用程序将您以前的或旧的地址指向一个新的地址,然后,它是一个重定向。当访问者访问或访问基于 Web 的应用程序的旧 URL 时,服务器会将访问者带到新创建的网页,该网页由网站所有者或管理员在配置文件中设置为重定向。有人可能会问,“为什么我们需要重定向”?所以答案很简单:执行重定向的主要目的或需要是将一些关键或几乎所有内容从旧网页转移或迁移到新网页。我们可以使用重定向来永久删除旧网页,也可以用于更改域名和将网站与其他公司服务器合并。
  • 状态代码:在 Internet 上浏览时,您一定遇到过错误消息或错误代码,例如 404。这是一个错误,还有更多,因此这些错误消息称为状态代码。因此,这些状态代码是标准响应代码,根据用户完成的请求从 Web 应用程序服务器返回。这些状态代码还提供有关我们请求的查询状态的数据或消息。当 Web 应用程序页面对请求做出适当响应时,代码会识别问题的原因。在通信中,每个HTTP/HTTPS协议响应消息包的第一行都包含一个状态码,表示请求查询的结果。

带有状态代码 404 的错误消息

在数据通信中,状态码有五组,按码的第一位数字划分:

  1. 1xx(信息说明代码): 100,101,102,103
  2. 2xx(请求成功说明代码): 200,201, 202, 203, 204,205 206, 207, 208, 226
  3. 3xx(重定向消息说明代码): 300,301,302,303,304,305,306,307,308
  4. 4xx(错误信息说明代码): 400、401、402、403、404、405、406、407、408、409、410、411、412、413、414、415、416、422、1 423、424、425、426、427、428、429、431、451
  5. 5xx(服务器遇到错误说明代码): 500,501,502,503,504,505,506,507,508,510,511
  • 301(永久移动)状态码:如上所述,3xx 状态码是为重定向警报保留的,所以在这个有影响力的群体中,我们有一个代码,即 301,也称为永久移动状态码。此代码将旧 URL 地址重定向到新创建的或在 Location 标头或消息包中指定的 URL。访问者必须使用这个新指定的 URL 而不是原始或旧的 URL。目标或最终资源被分配给一个唯一的或新的永久 URL,并且对该 URL 的任何未来更新都用于新创建的 URL。 301 重定向只是一种永久重定向,它将访问者从旧页面 URL 转移到重定向页面。根据重定向方面,301 是在任何 Web 应用程序上实现重定向的最佳方法和最可靠的方法。为了保留当前搜索引擎的特性或功能,使用了 301 重定向。我们必须在 .htaccess 配置文件中手动实现 301 重定向。

让我们详细了解一下 301 重定向。

1. 301 重定向的持续时间:最有可能永久移动或 301 重定向重定向指定域或子域大约一年或有时超过一年。您需要经常检查访问者是否被转移到您新创建的 URL(一年后)。 .htaccess 在方向上起着重要作用。如果你想去掉重定向,你可以修改.htaccess文件,去掉重定向,这样之后网站就不会再将用户转发到新的URL了。

通过图表了解 301 重定向:

301从旧页面重定向到新页面

2. 何时执行 301 重定向: 301 重定向通常用于以下情况:

  1. 域所有者想要更改页面的 URL。
  2. 域所有者想要连接关于同一主题的页面。
  3. 域所有者必须更改子文件夹的 URL(例如,https://geeksforgeeks.org/old-directory/ 到 https://geeksforgeeks.org/new-directory/)。
  4. 域所有者已将子域移动到子文件夹(例如,https://demo.geeksforgeeks.org 到 https://geeksforgeeks.org/demo/)。
  5. 域名所有者必须更改域名(例如,geeksforgeeks.org 更改为 geeksforgeeks.in)。
  6. 域所有者必须从 HTTP 切换到 HTTPS(例如,http://geeksforgeeks.org 到 https://geeksforgeeks.org)。

3.使用.htaccess配置文件实现301重定向的技术: htaccess是运行Apache Web Server软件的Web服务器上使用的配置文件。这个文件实际上负责重定向。

现在让我们看看实现301重定向需要遵循的步骤:

  • 创建一个 .htaccess 文件,打开记事本,命名,并将文件另存为 .htaccess(没有为文件指定扩展名)。
  • 如果您的服务器上已经存在 .htaccess,请修改它并重新上传。
  • 将以下代码放在您的 .htaccess 配置文件中。
  • 如果 .htaccess 文件中已有代码行,则跳过一行,然后添加上述代码。
  • 保存 .htaccess 文件。
  • 将此文件上传到服务器的主文件夹或根文件夹。
  • 通过在您更改的页面中输入旧地址来检查它。服务器应立即将您带到新位置。
  • 注意:不要在语句的第一部分添加“http://www”——放置从站点顶层到页面的路径。另外,请确保您在这些元素之间设计了一个空间:
  • redirect 301(页面移动的指令)
  • /old/old_page.html(原始文件夹路径和文件名)
  • http://www.demoexample.com/new_page_redirection.html(新路径和文件名)

示例:在下面的示例中,我们将执行 301 重定向。对于本演示,我们将文件托管在 LocalHost,即 XAMPP 服务器上。

我们创建了两个名为:

  1. OLD_PAGE.html
  2. NEW_PAGE_REDIRECTED.html

1.OLD_PAGE.html:在OLD_PAGE.html网页中,我们将通过在.htaccess文件中添加301重定向代码将此页面重定向到NEM_PAGE_REDIRECTED.html。 .htaccess 文件是基于 Web 的应用程序的配置文件。 .htaccess 文件可以通过这个文件管理所有的内部结构。 OLD_PAGE.html 是 Web 应用程序将重定向到另一个网页的网页。当任何用户输入 OLD_PAGE.html URL 时,他们将被自动重定向到新重定向页面。

OLD_PAGE.html


   
      OLD PAGE
   
   
      

WELCOME TO OLD PAGE

      

THIS IS THE PAGE WHICH WE ARE GOING TO REDIRECT TO ANOTHER PAGE

      


NEW_PAGE_REDIRECTED.html


   
      THIS IS NEW PAGE [REDIRECTED PAGE]
   
   
      

THIS IS THE NEW PAGE WHICH HAVE CAME FROM OLD_PAGE REDIRECTION

      

WE ARE IN OLD PAGE

      


HTML
#.htaccess file content 
#OLD_PAGE.html will be Redirected to NEW_PAGE_REDIRECTED.html Page Automatically
redirect 301 /OLD_PAGE.html http://localhost:8081/NEW_PAGE_REDIRECTED.html


输出:

图。1 。这是 OLD_PAGE.html 输出

2. NEW_PAGE_REDIRECTED.html:为了执行重定向,我们需要目标网页,我们的用户将从旧页面发送到新页面。所以我们的目标页面或新重定向页面是 NEW_PAGE_REDIRECTED.html。如果用户输入 OLD_PAGE.html URL,那么他将自动切换到 NEW_PAGE_REDIRECTED.html URL。

NEW_PAGE_REDIRECTED.html



   
      THIS IS NEW PAGE [REDIRECTED PAGE]
   
   
      

THIS IS THE NEW PAGE WHICH HAVE CAME FROM OLD_PAGE REDIRECTION

      

WE ARE IN OLD PAGE

      

输出:

图 2. 这是 NEW_PAGE_REDIRECTED.html 输出

3.重定向的.htaccess文件(配置文件):如上所述,.htaccess是负责任何类型重定向功能的任何内部结构的文件。所以业主应该小心处理这个文件。在这个文件中,我们需要添加301重定向的代码。代码只是一行代码,我们需要在其中指定旧页面和新重定向页面 URL。此单行代码负责基于 Web 的应用程序中的 301 重定向。根据需要,您可以重定向不同页面的数量,只需在 .htaccess 文件中添加代码即可。

.htaccess

HTML

#.htaccess file content 
#OLD_PAGE.html will be Redirected to NEW_PAGE_REDIRECTED.html Page Automatically
redirect 301 /OLD_PAGE.html http://localhost:8081/NEW_PAGE_REDIRECTED.html

输出:

视频 1. 输出视频(现场演示)

说明:当我们在地址栏中输入 OLD_PAGE.html URL 时,Web 应用程序会自动将我们带到另一个 URL,而这个其他 URL 是 NEW_PAGE_REDIRECTED.html 页面。所以这是由于 .htaccess 文件中写入的 301 重定向代码。尽管复制 http://localhost:8081/OLD_PAGE.html 链接并将其粘贴到新选项卡将始终将我们重定向到 http://localhost:8081/NEW_PAGE_REDIRECTED.html 页面,直到我们从 .htaccess 文件中删除重定向代码。你可以在上面的输出中看到,我试图打开 http://localhost:8081/OLD_PAGE.html 但当我们完成重定向后,我们被重定向到 http://localhost:8081/NEW_PAGE_REDIRECTED.html。

此重定向将持续到所有者从 .htaccess 文件中删除重定向命令。