我正在运行 Apache 2.0,我只是想知道是否可以使用 JavaScript 或 jQuery 进行 301 重定向。
我有一个指向指定位置的<a></a>
标签,href
当我单击该链接时,系统会要求我进行 301 重定向。
这是针对 SEO 的,我正在尝试找到一种方法来将 301 重定向到链接中的同一页面,而无需创建新页面或创建表单/提交。
我正在运行 Apache 2.0,我只是想知道是否可以使用 JavaScript 或 jQuery 进行 301 重定向。
我有一个指向指定位置的<a></a>
标签,href
当我单击该链接时,系统会要求我进行 301 重定向。
这是针对 SEO 的,我正在尝试找到一种方法来将 301 重定向到链接中的同一页面,而无需创建新页面或创建表单/提交。
我知道这是一个老问题,但答案并没有真正解决问题中提出的主要问题,即出于 SEO 目的的 301 重定向(今天的答案很可能与问题最初时的答案不同问和回答)。
不,您不能从客户端进行 301 重定向的答案在技术上是正确的,但是(更重要的是)您不一定需要这样做。虽然首选真正的 301,但在这种不可能的情况下(例如,从 hashbang URL 转换回传统 URL),问题实际上是是否存在实现目标的可行替代方案。
Search Engine Land对 Google 关于 JavaScript 的功能进行了详细测试,这是该文章的相关摘录:
- JavaScript 重定向
我们首先测试了常见的 JavaScript 重定向,改变了 URL 以不同方式表示的方式。我们选择的方法是 window.location 函数。执行了两个测试:测试 A 包括 window.location 函数中的绝对 URL。测试 B 使用相对 URL。
结果:重定向很快被谷歌跟踪。从索引的角度来看,它们被解释为 301——最终状态 URL 取代了 Google 索引中的重定向 URL。
在随后的测试中,我们使用了一个权威页面并实现了一个 JavaScript 重定向到网站上具有完全相同内容的新页面。原始 URL 在热门查询的 Google 第一页上排名。
结果:正如预期的那样,重定向被谷歌跟踪,原始页面从索引中删除。新 URL 被编入索引,并立即针对相同的查询将其排在相同的位置。这让我们感到惊讶,并且似乎表明 JavaScript 重定向可以(有时)从排名的角度来看与永久 301 重定向完全一样。
下次您的客户想要为他们的网站移动实施 JavaScript 重定向时,您的回答可能不需要是“请不要”。在这种关系中似乎存在排名信号的转移。支持这一发现的是谷歌指南的引用:
“使用 JavaScript 重定向用户可能是一种合法的做法。例如,如果您在用户登录后将其重定向到内部页面,您可以使用 JavaScript 来执行此操作。在检查 JavaScript 或其他重定向方法以确保您的网站遵守根据我们的指南,请考虑意图。请记住,移动网站时最好使用 301 重定向,但如果您无权访问您网站的服务器,则可以为此目的使用 JavaScript 重定向。”
总之没有。
JavaScript 完全在客户端运行。301 重定向应该作为来自服务器的响应。这意味着如果没有服务器支持,您将无法执行此操作。
301 是服务器响应代码。您将无法从 jQuery 创建 301 重定向。
您必须从 PHP 执行 301。
如果这仅用于 SEO 目的,那么这将起作用
<meta http-equiv="refresh" content="0;url=YOUR_URL">
Google 将其视为 301 重定向,尽管它不是
301 重定向是永久重定向,基本上是 HTTP 服务器响应。JavaScript/jQuery 是在客户端上执行的东西。两个不同的世界。
相反,如果您不能在服务器上执行此操作,您实际上可以将最终 URL 放入 href 中。
或者,如果您询问是否可以重定向当前页面,是的,可以使用 META 重定向或更改 window.location。
如果您使用的是 Apache,则可以使用mod_rewrite进行 301 重定向。