Aller au contenu

Sujets conseillés

Posté

Est ce que quelqu'un connait un moyen de rediriger une url en transmettant au site cible par exemple l'info qu'il y a eu une redirection.

Le mieux serait de pouvoir controler le Referer mais en principe le referer que vera le site cible ne sera pas affecté par la redirection.

Le seul moyen que j'ai trouvé jusqu'a present n'est pas vraiment propre il s'agit de "rediriger" via un frame en incluant dans l'entete de la page de rediretion quelque chose du genre :

<frameset rows="100%">

<frame src=&quot;http://www.urlcible.com">

</frameset>

Mais c'est du cloaking et c'est embetant sans compter que l'internaute se retrouve avec une url dans sa bar d'adresse qui ne correspond pas au site finalement visité.

Posté

Bonsoir,

Pourquoi ne pas simplement ajouter un paramètre GET dans l'URL du site cible ? Sur ce site il suffit d'analyser (avec un langage comme PHP par exemple) cette variable pour déterminer si l'utilisateur est arrivé grâce à la redirection ou directement. Pour cela il faut pouvoir influencer le site source afin d'inclure ce paramètre dans cette redirection.

L'URL de destination serait :-http://www.urlcible.com?r=1

Ensuite si ce paramètre te gêne tu peux générer une redirection sur le site cible qui sera effectuée uniquement si ce paramètre est à la bonne valeur (ce qui t'évitera de voir cette URL indexée), mais au passage tu auras pu déterminer si le visiteur est arrivé sur la page par une redirection.

Si tu ne peux pas modifier le site source je ne vois pas vraiment d'autre solution fiable, le Referer n'est défini que lorsqu'un utilisateur effectue un clic.

En même temps si c'était possible, il ont pourrait espionner tous le dernier site visité par un utilisateur, donc encore heureux que ce ne soit pas possible ;)

Posté

L'idee est bonne

mais cela ne risque t'il pas de perturber le fonctionnement du site cible et generer une page d'erreur dans certain cas ?

Surtout comment vont reagir les moteurs de recherche a une redirection de ce type ? Je crois que certains ignore les url comportant des parametres get

Posté

Si cela te pose un problème d'avoir un paramètre GET dans la Query String (après "?"), tu peux éventuellement passer par la réécriture pour inclure ce paramètre. Mais fondamentalement tu va devoir différencier ces pages (sans pouvoir utiliser le HTTP_REFERER vu le peu de fiabilité de ce dernier), donc du point de vue du référencement ce sera deux pages différentes, sauf que celle ou atterriront les personne ayant utilisé une redirection les redirigera à nouveau vers la page de destination... mais au passage tu aura pu collecter les informations nécessaire au sujet de la personne.

Pour les moteurs de recherche ils sont généralement conçu pour suivre les redirection et n'indexer que les pages de destination lorsque tu utilises une redirection permanente (301).

Pour la page d'erreur, je ne vois pas ce que tu veux dire :S

Posté

Pour la page d'erreur, je pense que tu as raison, ca ne devrait pas se produire souvent. J'avais en tete le cas ou l'url deviendrait trop longue parce qu'elle comporterait deja un get tres long a l'origine, ou alors le cas ou le site source aurait un script qui verifirait que les requetes get sont exactement comme attendu pour eviter les risque d'injection dans les formulaires par exemple. mais ca me parait assez marginal.

Par contre ce que tu dis pour les moteurs de recherche me fait penser qu'il pourrait y avoir un probleme :

Si je fais une redirection ou l'url de redirection serait http://www.urlcible.com?r=1 le moteur de recherche va donc indexer la page http://www.urlcible.com?r=1 qui aura le meme contenu que la page http://www.urlcible.com, page qui aura sans doute indexee egalement. Il risque donc de considerer qu'il y a des pages clones et de penaliser le site cible. Est ce que proceder avec un rewrite (via le .htaccess je suppose) comme tu le suggeres permettrait d'eviter ce probleme ?

En fait ca me fait penser (si je ne me trompe pas) quelqu'un de mal intentionné pourrait affecter le page rank d'un site en postant des liens vers lui comportant des parametres get additionnels et fantaisiste. Seule parade, le site cible doit lui meme rediriger les url fantaisistes vers l'url original.

Posté
En fait ca me fait penser (si je ne me trompe pas) quelqu'un de mal intentionné pourrait affecter le page rank d'un site en postant des liens vers lui comportant des parametres get additionnels et fantaisiste. Seule parade, le site cible doit lui meme rediriger les url fantaisistes vers l'url original.

C'est ce que je m'évertue à te dire, la page &quot;http://www.urlcible.com?r=1" redirigera vers ta page de destination sans le ?r=1. Par exemple en PHP te ferais ainsi au tout début de la page de destination :

<?php
if($_GET['r']) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.urlcible.com');
exit();
}
// Le reste de ta page cible sera en dessous dans le cas, ainsi si ?r=1 n'a pas été défini dans l'URL la page se charge normalement

Les moteurs de recherche suivent cette redirection et n'indexent que la page en fin de redirection... sinon comme tu le dis les gens pourraient pourrir l'index (enfin, à priori les moteur de recherchent préviennent cela et c'est aussi du devoir du programmeur d'y penser en renvoyant une erreur HTTP 404 lorsqu'une page n'existe pas par exemple parce que les paramètres GET ne correspondent à rien par rapport à l'architecture du site).

Maintenant, le fait est que rediriger simplement l'URL ?r=1 vers l'URL cible ne t'avance pas beaucoup, par contre si juste avant d'envoyer ce statut "301" tu crées une variable de session (cela implique soit d'utiliser le cookies, soit le Session ID... je sais cela pose d'autres problèmes) indiquant qu'il y a eu une redirection tu pourras la récupérer et l'exploiter comme tu le souhaite.

Je ne vois pas d'autre solution plus fiable... dans tous les cas tu as raison si tu laisse pointer l'URL ?r=1 et sans ?r=1 sur le même contenu les moteurs détecteront ceci comme du duplicate content. Mais si tu fais une redirection après la première redirection, tu n'as pas ce problème, comme je viens de l'expliqurer.

Posté

Entendu désolé le malentendu vient sans doute du fait que je n'ai pas precisement assez clairement que je n'avais aucun controle sur le site cible. Je voulais avoir la possibilité de lui transmettre l'info que j'avais fais une redirection sur son site sans lui imposer pour autant de mettre un scripte de redirection comme celui que tu suggeres mais ca ne doit pas etre possible et je dois me debrouiller autrement.

En tout cas je te remercie d'avoir pris le temps de me repondre, tu m'as donné quelques idées qui devraient bien m'aider.

Posté

Sans problème :)

Effectivement, à ma connaissance tu ne trouvera pas d'autre solution "fiable" pour faire exactement ce que tu souhaite, l'en-tête que tu envoies pour indiquer qu'il y a redirection est locale au serveur l'émettant (le serveur source), une fois la redirection effectuée, l'en-tête renvoyée par le serveur cible sera à priori un statut "200" (OK), si tout c'est bien déroulé.

Désolé de ne pas pouvoir te fournir une solution, selon mon expérience tu touches au limites de HTTP et en fait ce n'est pas un mal, car si ce que tu souhaites faire était possible cela représenterait un moyen de tracking supplémentaire pouvant sérieusement nuire à la vie privée.

Si c'était faisable on pourrait théoriquement reconstituer le parcours d'un utilisateur de site en site sans être son fournisseur internet.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...