39 votes

Comment réparer la redirection circulaire de Facebook ?

J'ai une page qui redirige vers une autre page. sur laquelle j'essaie de tester mon url : 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 le rediriger ?

65voto

Craig Davison Points 82

Je viens de résoudre ce problème en ajoutant un "/" à la fin de la méta-tag Facebook url. Donc, j'ai changé

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

à

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

et cela a fait l'affaire !

7voto

Igy Points 33181

Cela devrait être clair d'après les détails donnés ci-dessous dans la section du chemin de redirection de la sortie du débogueur : Dans la plupart des cas, cela se produit parce que vous avez spécifié un nom de fichier og:url qui pointe vers (par exemple) 'mysite.com/articles' et qui redirige vers 'mysite.com/articles/' - le robot d'exploration se rend ensuite sur 'mysite.com/articles' et reçoit la balise og:url qui le renvoie vers 'mysite.com/articles'.

5voto

Jeroen Points 51

J'ai trouvé une solution de contournement et bien qu'il s'agisse d'une LAMP empiler quelque chose de similaire doit être possible avec .NET .

Vérification de la Apache server lors de l'utilisation du Facebook Linter J'ai eu :

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 le User-Agent contient : facebookexternalhit si oui, j'affiche la page originale, sinon je redirige vers la nouvelle url.

Vous pouvez utiliser les éléments suivants RewriteCond sur Apache pour s'assurer que votre règle de réécriture ne s'exécutera que si l'User-Agent N'EST PAS (attention au point d'exclamation) facebookexternalhit .

RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit

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

3voto

murshidm Points 133

Peut-être qu'ajouter le 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

3voto

shrish Points 293

Dans mon cas, c'était url canonique était sur http et l'url recherchée était sur https en le passant en https, cela a réglé mon problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X