[PHP] Redirection via header()

WRInaute passionné
Bonjour,

Lorsque l'on souhaite rediriger un visiteur vers une page après une action, par exemple après le remplissage d'un formulaire valide, on utilise généralement :
Code:
<?php
header("Location: http://www.example.com/"); /* Redirection du navigateur */
exit;
?>

Et d'après la documentation PHP :
Le deuxième type d'appel spécial est "Location:". Non seulement il renvoie un en-tête au client, mais, en plus, il envoie un statut REDIRECT (302) à Apache. Du point de vue de l'auteur de script, cela importe peu, mais pour ceux qui connaissent les rouages internes d'Apache, c'est primordial.

Hors si l'on interprète le code 302, il signifie :
302 - Moved Temporarily - Document déplacé de façon temporaire


Ce code 302 est-il pertinent ?
Dans cette situation, il n'y a en effet aucun document déplacé.
Le 303 ne serait-il pas plus approprié ?
303 - See Other - La réponse à cette requête est ailleurs
Qu'en pensez-vous ?
 
WRInaute passionné
On m'a répondu :

C'est d'autant plus subtile que ca a changé

302 "Found" indique que l'adresse demandée est bonne mais que pour le moment, il est demandé d'aller ailleurs.
307 "Temporary Redirect" indique la reponse est sur une autre page, la requete est donc répétée.
303 "See other" repete egalement la requete mais en convertissant en GET.

Dans notre cas c'est bien 302, la requête a bien été traité mais on nous demande d'aller voir ailleurs maintenant.
 
WRInaute accro
après validation de formulaire ce n'est pas très grave pour le référencement Google

mais sinon lorsque tu redirige, tu dois spécifier le type :

header("Status: 301 Moved Permanently");
header("location: ...");
 
WRInaute discret
e-kiwi a dit:
après validation de formulaire ce n'est pas très grave pour le référencement Google
mais sinon lorsque tu redirige, tu dois spécifier le type :
header("Status: 301 Moved Permanently");
header("location: ...");
Je précise : quand tu rediriges de façon permanente la 301, par exemple quand ta page a changée de répertoire ou de manière globale d'url et que tu souhaites que google et les autres considèrent la nouvelles urls dans les SERPS.
Aprés dans le cas d'une transaction de formulaire 302,303,307 je pense que les navigateurs s'en tappent et les moteurs de recherche ne sont pas sensé passer par la donc souvent je ne met rien, après à toi de voir ;)
 
WRInaute accro
dorian53 a dit:
Lorsque l'on souhaite rediriger un visiteur vers une page après une action, par exemple après le remplissage d'un formulaire valide, on utilise généralement : (...)
Les robots ne remplissant pas les formulaires (en principe), la question est purement théorique. :wink:

Jean-Luc
 
Discussions similaires
Haut