【问题标题】:Are 301 redirects possible using javascript or jQuery?是否可以使用 javascript 或 jQuery 进行 301 重定向?
【发布时间】:2012-11-30 13:39:32
【问题描述】:

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

我有一个带有href<a></a> 标记到指定位置,当我点击该链接时,系统会要求我进行301 重定向。

这是针对 SEO 的,我正在尝试找到一种方法来执行 301 重定向到链接中的同一页面,而无需创建新页面或创建表单/提交。

【问题讨论】:

    标签: javascript jquery seo http-status-code-301


    【解决方案1】:

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

    不,您不能从客户端进行 301 重定向的答案在技术上是正确的,但是(更重要的是)您不一定需要这样做。虽然最好使用真正的 301,但在这种不可能的情况下(例如,从 hashbang URL 转换回传统 URL),问题在于是否存在实现目标的可行替代方案。

    Search Engine Land did a detailed testGoogle 关于 JavaScript 的能力,这是该文章的相关摘录:

    1. JavaScript 重定向

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

    结果:重定向很快被 Google 跟踪。从一个 从索引的角度来看,它们被解释为 301——最终状态 URL 替换了 Google 索引中的重定向 URL。

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

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

    下次您的客户想要实施 JavaScript 重定向时 他们的网站移动,您的回答可能不需要是“请不要”。它 似乎在这种关系中存在排名信号的转移。 支持这一发现的是来自Google’s guidelines 的引用:

    “使用 JavaScript 重定向用户可能是一种合法的做法。对于 例如,如果您在用户登录后将其重定向到内部页面 在中,您可以使用 JavaScript 来执行此操作。检查 JavaScript 或 其他重定向方法,以确保您的网站遵守我们的指南, 考虑意图。请记住,301 重定向是最好的 移动您的网站,但您可以为此使用 JavaScript 重定向 如果您无权访问您网站的服务器,则可用于此目的。”

    【讨论】:

    • 感谢您的回答,正是我发现这个问题时的疑惑。
    【解决方案2】:

    简而言之

    JavaScript 完全在客户端运行。 301 重定向应该作为来自服务器的响应。这意味着您不能在没有服务器支持的情况下执行此操作。

    【讨论】:

      【解决方案3】:

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

      您必须从 PHP 执行 301。

      【讨论】:

        【解决方案4】:

        如果这仅用于 SEO 目的,那么这将起作用
        <meta http-equiv="refresh" content="0;url=YOUR_URL">
        Google 认为这是 301 重定向,但不是

        【讨论】:

          【解决方案5】:

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

          如果您不能在服务器上这样做,您实际上可以将最终 URL 放入 href。

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

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

          【讨论】:

          • @Queti:301 重定向可以从任何服务器端框架进行,而不仅仅是 PHP。
          • 我认为您评论了错误的答案。无论如何,我认为 Queti 只是指 PHP,因为那是问题中标记的服务器
          • 是的,我错过了 php 标签,我刚刚看到你使用的是 Apache,你可以在 Apache 中使用 mod_rewrite 来完成,不需要 PHP。
          • @AdrianBer 好吧,我希望重定向是用户控制的,所以我不认为 mod_rewrite 真的是一个选项。
          猜你喜欢
          • 2011-05-16
          • 1970-01-01
          • 2012-03-10
          • 2015-09-26
          • 2013-09-02
          • 2014-08-30
          • 2017-04-15
          • 2018-03-09
          相关资源
          最近更新 更多