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