【问题标题】:How to fix Facebook Circular Redirect?如何修复 Facebook 循环重定向?
【发布时间】:2012-01-04 00:07:33
【问题描述】:

我有一个页面重定向到另一个页面 我正在尝试测试我的网址: https://developers.facebook.com/tools/debug

我收到此错误:

Errors That Must Be Fixed:
Circular Redirect:‎ Circular redirect path detected (see Redirect Path section for details).

Warnings That Should Be Fixed:
‎The og:url property should be explicitly provided, even if a value can be inferred from other
tags.‎
  1. 如何解决这个问题?
  2. 如何检测 Facebook,如果是 Facebook,不重定向?

【问题讨论】:

  • 我也有一些问题。你用什么来重定向你的页面?我们在谈论什么脚本语言?
  • 我在asp中使用Response.Redirect()

标签: facebook redirect


【解决方案1】:

我刚刚通过在 Facebook url 元标记的末尾添加一个“/”来解决这个问题。所以,改变了

<meta property="og:url" content="http://domain.com/path"/>

<meta property="og:url" content="http://domain.com/path/"/>

这样就成功了!

【讨论】:

  • 2017 年仍然有效!我的问题实际上是缺少 ? 来启动查询,但它让我找到了正确的位置。
【解决方案2】:

从调试器输出的重定向路径部分中给出的详细信息中应该清楚: 在大多数情况下,这是因为您指定了一个 og:url 标记指向(例如)“mysite.com/articles”,这会重定向到“mysite.com/articles/”——然后爬虫会转到“mysite.com” /articles' 并获取 og:url 标签将其指向 'mysite.com/articles'

【讨论】:

    【解决方案3】:

    我找到了一种解决方法,虽然它位于 LAMP 堆栈上,但 .NET 必须可以实现类似的东西。

    在使用Facebook Linter 时检查Apache server 日志我得到了:

    69.63.189.246 - - [09/Jan/2012:03:54:45 +0000] "GET /test1.php HTTP/1.1" 200 8879 "-" > "facebookexternalhit/1.1 (+http://www .facebook.com/externalhit_uatext.php)"

    我现在检查 User-Agent 是否包含:facebookexternalhit,如果是,我会显示原始页面,如果不是,我会重定向到新的 url。

    您可以在Apache 中使用以下RewriteCond 来确保您的重写规则仅在用户代理IS NOT 时运行(注意感叹号)facebookexternalhit .

    RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit
    

    这个解决方案是有风险的,如果 Facebook 决定改变他们的 User-Agent 标头,你将是王室成员......但现在它似乎可以解决问题。

    【讨论】:

    • 这很 hacky,但它是唯一可以解决循环重定向问题同时保持我所有 Facebook 喜欢不变的东西。
    【解决方案4】:

    也许在页面加载后添加标题会有所帮助

    <script type="text/javascript">
    // <![CDATA[
        var meta = document.createElement('meta');
        meta.setAttribute("property", "og:url");
        meta.setAttribute("content", location.href);
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(meta);    
    // ]]>
    </script>
    

    http://digdog.tumblr.com/post/1134982957/integrate-tumblr-template-with-facebook-open-graph

    【讨论】:

      【解决方案5】:

      在我的情况下,它是 canonical url 位于 http 上,而获取的 url 位于 https 上,将其切换到 https,它解决了我的问题。

      【讨论】:

        【解决方案6】:

        检查https://developers.facebook.com/tools/debug 中的Canonical URL 以了解它的重定向位置。如果有 302 重定向,那么您必须删除该重定向或将重定向路径作为 og:URL 元标记值。

        如果http 被重定向到https。然后将https://your-sitename.com 作为 og:URL 的新值。

        请注意,这将重置您所有的旧 cmets。

        【讨论】:

          【解决方案7】:

          我有同样的错误: 就我而言,问题是www。在针对获取的规范网址中。 匹配,问题消失。

          【讨论】:

            【解决方案8】:

            我遇到了同样的问题。一开始很难注意到,但 heroku 将我从 domain.heroku.com 重定向到 domain.herokuapp.com。

            奇怪的是,问题的原因是 config.action_mailer.default_url_options = { :host => 'mydomain.herokuapp.com' } 即使不涉及邮件程序。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-07-10
              • 1970-01-01
              • 1970-01-01
              • 2012-08-08
              • 2023-03-19
              相关资源
              最近更新 更多