web-dev-qa-db-fra.com

Comment réparer Facebook Redirect circulaire?

J'ai une page qui redirige vers une autre page J'essaie de tester mon URL sur: https://developers.facebook.com/tools/debug

Je reçois cette erreur:

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. Comment puis-je résoudre ce problème?
  2. Comment détecter Facebook et, s'il s'agit de Facebook, ne pas rediriger?
31
user1057679

Je viens de résoudre ce problème en ajoutant un "/" à la fin de la balise méta de l'URL de Facebook. Donc changé

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

à

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

et ça a fait l'affaire!

53
kenitech

Les informations données ci-dessous dans la section relative au chemin de redirection de la sortie du débogueur doivent indiquer clairement: Dans la plupart des cas, cela est dû au fait que vous avez spécifié une balise og:url pointant vers redirige vers 'mysite.com/articles/' - le robot va ensuite sur 'mysite.com/articles' et obtient le tag og: url qui le renvoie à 'mysite.com/articles'

6
Igy

J'ai trouvé une solution de contournement et bien que ce soit sur une pile LAMP, quelque chose de similaire doit être possible avec .NET

Vérification du journal Apache server lors de l’utilisation du Facebook Linter j’ai obtenu:

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) "

Je vérifie maintenant si l'agent utilisateur contient: facebookexternalhit si j'affiche la page d'origine, sinon je redirige vers la nouvelle URL.

Vous pouvez utiliser la variable RewriteCond suivante dans Apache pour vous assurer que votre règle de réécriture ne fonctionnera que si l'agent utilisateur IS NOT (observez le point d'exclamation) facebookexternalhit.

RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit

Cette solution est risquée, si Facebook décide de changer l'en-tête de User-Agent, vous serez royalement ... mais pour l'instant, cela semble faire l'affaire.

5
Jeroen

Peut-être que l'ajout du titre après le chargement de la page aide

<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

3
murshidm

Dans mon cas, il s'agissait de URL canonique était sur http et l'URL extraite était sur https en le commutant sur https, il a résolu mon problème.

1
shrish

J'ai eu la même erreur: Dans mon cas, le problème était www. dans l'url canonique contre récupéré . Matched et le problème a disparu.

1
aleXela

J'ai eu le même problème. Difficile à remarquer au début, mais heroku me redirigeait de domain.heroku.com vers domain.herokuapp.com.

Étrangement, la cause du problème était config.action_mailer.default_url_options = {: Host => 'mydomain.herokuapp.com'} même si aucun e-mail n'est impliqué.

0
Ian

Vérifiez le Canonical URL dans https://developers.facebook.com/tools/debug pour savoir où il est redirigé. S'il existe une redirection 302, vous devez soit supprimer cette redirection, soit attribuer au chemin redirigé la valeur de la balise méta og:URL.

Si http est redirigé vers https. Indiquez ensuite https://Sitename.com en tant que nouvelle valeur de og: URL. 

S'il vous plaît, pas ceux-ci réinitialiseront tous vos anciens commentaires.

0
Srihari Karanth