如何修复Facebook循环重定向?

时间:2011-11-22 15:53:18

标签: facebook redirect

我有一个重定向到另一个页面的页面 我正在尝试测试我的网址: 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,请不要重定向?

8 个答案:

答案 0 :(得分:53)

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

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

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

这就是诀窍!

答案 1 :(得分:6)

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

答案 2 :(得分:5)

我找到了一种解决方法,虽然它位于LAMP堆栈上,但.NET必须有类似的功能。

使用Apache server时检查Facebook Linter日志:

  

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

我现在检查用户代理是否包含:facebookexternalhit如果是,我显示原始页面,如果不是,我会重定向到新网址。

您可以在RewriteCond中使用以下Apache来确保只有在用户代理时才会运行重写规则(注意感叹号) )facebookexternalhit

RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit

这个解决方案存在风险,如果Facebook决定改变他们的用户代理标题,那么你将会很好地......但是现在似乎可以解决这个问题。

答案 3 :(得分:3)

可能在页面加载后添加标题

<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

答案 4 :(得分:1)

我有同样的错误: 在我的情况下,问题是www。在规范网址中反对取得。 匹配和问题消失了。

答案 5 :(得分:1)

在我的情况下,规范网址http上,并且已提取的网址在https上,将其切换为https,它解决了我的问题。

答案 6 :(得分:1)

检查https://developers.facebook.com/tools/debug中的Canonical URL重定向的位置。如果存在302重定向,则您必须删除该重定向,或者将重定向的路径作为og:URL元标记值。

如果http被重定向到https。然后给https://Sitename.com作为og:URL的新值。

请注意,这些将重置您所有的旧评论。

答案 7 :(得分:0)

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

奇怪的是,问题的原因是   config.action_mailer.default_url_options = {:host =&gt; 'mydomain.herokuapp.com'}即使没有邮件参与。