是否可以使用javascript或jQuery进行301重定向?

是否可以使用javascript或jQuery进行301重定向?,javascript,jquery,seo,http-status-code-301,Javascript,Jquery,Seo,Http Status Code 301,我正在运行Apache2.0,我只是想知道是否可以使用JavaScript或jQuery进行301重定向 我有一个标记,带有href到指定位置,当我单击该链接时,会被要求进行301重定向 这是为了搜索引擎优化,我正试图找到一种方法,使301重定向到链接中的同一页面,而不必创建新页面或创建表单/提交。简言之否 JavaScript完全在客户端运行。301重定向应该是来自服务器的响应。这意味着,如果没有服务器支持,您无法执行此操作。301是服务器响应代码。您将无法从jQuery创建301重定向 您必

我正在运行Apache2.0,我只是想知道是否可以使用JavaScript或jQuery进行301重定向

我有一个
标记,带有
href
到指定位置,当我单击该链接时,会被要求进行301重定向


这是为了搜索引擎优化,我正试图找到一种方法,使301重定向到链接中的同一页面,而不必创建新页面或创建表单/提交。

简言之


JavaScript完全在客户端运行。301重定向应该是来自服务器的响应。这意味着,如果没有服务器支持,您无法执行此操作。

301是服务器响应代码。您将无法从jQuery创建301重定向

您必须从PHP执行301操作。

是永久重定向,基本上是HTTP服务器响应。JavaScript/jQuery是在客户机上执行的东西。两个不同的世界

相反,如果无法在服务器上执行,您可以实际将href放入最终URL

或者,如果您询问是否可以重定向当前页面,则可以使用元重定向或更改window.location


如果您使用的是Apache,您可以使用它进行301重定向。

我知道这是一个老问题,但答案并没有真正解决问题中提出的主要问题,这是一个用于SEO目的的301重定向(今天的答案可能与最初提问和回答问题时的答案非常不同)

答案是不,您不能从客户端301重定向,这在技术上是正确的,但是(更重要的是)您不一定需要这样做。虽然真正的301是首选,但在这种情况下,它是不可能的(或者从hashbang URL转换回传统URL),问题是是否有可行的替代方案来实现这一目标

谷歌在JavaScript方面的能力,这是该文章的相关摘录:

  • JavaScript重定向
  • 我们首先测试了常见的JavaScript重定向,改变了URL的使用方式 以不同的方式表现出来。我们选择的方法是 window.location函数。进行了两项试验:包括试验A window.location函数中属性化的绝对URL。测试B 使用相对URL

    结果:谷歌很快跟进了这些重定向。从 从索引的角度来看,它们被解释为301s——结束状态 URL取代了Google索引中的重定向URL

    在随后的测试中,我们使用了权威页面和 使用实现了一个JavaScript重定向到站点上的新页面 完全相同的内容。在的第一页上排列的原始URL 谷歌搜索热门查询

    结果:正如预期的那样,Google和 从索引中删除的原始页。新的URL已编制索引,并且 对于相同的查询,立即排名在相同的位置。这 让我们惊讶的是,这似乎表明JavaScript重定向可以(至少) 时间)的行为与排名中的永久301重定向完全相同 立场

    下次您的客户机想要为其实现JavaScript重定向时 他们的网站移动了,你的答案可能不需要是“请不要”它 在这种关系中似乎存在排名信号的传递。 支持这一发现的是以下引用:

    “使用JavaScript重定向用户可能是一种合法的做法 例如,如果用户登录后将其重定向到内部页面 在中,您可以使用JavaScript来执行此操作 其他重定向方法,以确保您的网站符合我们的指导原则, 考虑这个意图。记住,301个重定向是最好的。 正在移动您的站点,但您可以使用JavaScript重定向来实现此目的 如果您没有访问网站服务器的权限,请使用此功能。“


    如果这只是为了SEO目的,那么这将起作用


    谷歌认为这是一个301重定向,尽管它不是

    @Queti:301重定向可以从任何服务器端框架进行,而不仅仅是PHP。我想你的评论是错误的。无论如何,我认为Queti只是指PHP,因为它是在question@AdrianBer但是如果你注意到,我把php放在我的标记中,所以他让我参考我自己的场景。是的,我错过了php标记,我只是看到你在使用Apache,你可以用Apache中的mod_rewrite来完成,不需要php。@AdrianBer好吧,我希望重定向是由用户控制的,所以我不认为mod_rewrite真的是一个选项。谢谢你的回答,这正是我发现这个问题时想知道的。