Aller au contenu

Sujets conseillés

Posté

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

Posté

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

Posté (modifié)

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
  • 2 months later...
Posté

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 ?

Posté
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

Posté

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

Posté

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.

Veuillez vous connecter pour commenter

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



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