Aller au contenu

Redirection PHP


Poppy

Sujets conseillés

Bonjour,

J'aimerai connaitre la différence entre:

header("Status: 301 Moved Permanently");
header("Location: http://mydir.celeonet.fr");
exit();

et

header("Location: http://mydir.celeonet.fr");
exit();

Les 2 marchent, mais à quoi sert le status ?

Merci pour vos réponses ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Le premier fait une redirection 301, le second une redirection 302.

Redirection 301 : le serveur dit au navigateur (ou au robot) qui le visite que la redirection est permanente et définitive et lui conseille d'oublier l'ancienne adresse et de la remplacer par la nouvelle (important pour les moteurs de recherche)

Redirection 302 : le serveur dit au navigateur (ou au robot) qui le visite que la redirection pourrait être temporaire. Il ne lui conseille pas d'oublier l'ancienne adresse (ce qui va faire que Google et certains autres moteurs vont peut-être se mêler les pinceaux entre les deux adresses; un moteur de recherche bien programmé comme Yahoo n'a pas ce problème)

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Super, merci pour l'explication !

Et ça, c'est bon ?

header("Location: [url=http://mydir.celeonet.fr"]http://mydir.celeonet.fr"[/url], 301);
header("Location: [url=http://mydir.celeonet.fr"]http://mydir.celeonet.fr"[/url], 302);

Là, c'est plutôt à propos de la synthaxe mon interrogation :)

Modifié par Poppy
Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Bonjour,

A propos de redirection, je fais des redirections de mon site vers d'autres sites et au passage je gère un compteur (c'est la raison de ce bout de code).

Je la fais de la sorte :

...code php pour gérer mon compteur.... puis un echo de 
<meta http-equiv='Refresh' content='0;URL=".$url."'></HEAD>

Est-ce une bonne manière de faire une redirection en php ?

Lien vers le commentaire
Partager sur d’autres sites

Est-ce une bonne manière de faire une redirection en php ?

Je dirais sans hésiter: non !

Le problème des refresh à 0 secondes est que les moteurs n'aiment pas cela du tout. Normal parce que c'est le plus souvent utilisé pour des redirections trompeuses, ce que Google appelle une "deceptive redirect".

Il vaut beaucoup mieux utiliser la fonction header() parce qu'au moins personne ne sait que tu fais une redirection.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Merci Dan.

J'ai modifié mon code. Par contre, au passage j'ai constaté que la function header() ne supportait pas les & :angry:

Voici le code :

...compteur de clics...
$url = html_entity_decode($url);
$url = "Location: ".$url;
header($url);

Lien vers le commentaire
Partager sur d’autres sites

Salut,

çà parait normal que PHP n'accepte pas une entité HTML qui sert à ce que les navigateurs ne se prennent pas les pieds dans le tapis entre les attributs id et les variables passées dans l'URL.

Lorsque tu ne travailles qu'en PHP brut (c'est-à-dire que rien ne 'ressort' en HTML), c'est & tout court.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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