Version complète: sur le forum Webmaster Hub : Redirection 301 ? ou 302 ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Anonymus
J'essaie de faire une redirection 301, en php.

Ca donne :
header("Status: 301 Moved Permanently");
header("Location: http://www.domaine.com");
exit();

Seulement, ca me sort une redirection 302, sur le http viewer sad.gif

J'ai essayé de passer le même type de redirections avec le htaccess, et ca me sort idem sad.gif

Une idée ?
Dan
Tu me donnes l'URL de la page faisant la redirection (celle initiale, pas la destination) ?

J'ai fait des modifs de code sur le http-viewer, je me suis peut-être loupé sad.gif
Nicolas
Effectivement, ça me sort aussi un HTTP/1.1 302 Found alors que j'ai bien une redirection 301!
Dan
Non... mes modifs sont bonnes. J'ai vérifié avec l'URL suivante:
http://immo.wildcroft.com/publication/article39.html
qui redirige vers l'article du Hub.

J'ai bien une entête 301.
Dan
Comment avez vous mis le code de redirection pour le fichier .htaccess ?
Anonymus
par mp wink.gif

la suite ici lool
Dan
Ok Anonymus,

En regardant le début de l'entête renvoyée par ton URL, on a:
CITATION
HTTP/1.1 302 Found
Date: Mon, 07 Feb 2005 10:13:51 GMT
Server: Apache/1.3.33 (Unix) mod_gzip/1.3.19.1a PHP/4.3.10 mod_ssl/2.8.22 OpenSSL/0.9.6m
X-Powered-By: PHP/4.3.10
Status: 301 Moved Permanently


Je pense qu'il doit s'agir d'un mauvais paramétrage de ton serveur Web... mais je ne sais pas lequel sad.gif

Je cherche....

Dan
Nicolas
J'ai pas de .htaccess mais le même code qu'Anonymous

C'est p-e une fausse alerte car ca donne le bon status:

CODE
Status: 301 Moved Permanently
Thanh
J'ai pingé l'url et j'obtiens ceci avec la méthode HEAD

HTTP/1.1 301 Moved Permanently
Date: Mon, 07 Feb 2005 10:14:34 GMT
Server: Apache
Location: http://www.webmaster-hub.com/
Connection: close
Content-Type: text/html; charset=iso-8859-1
Dan
Cela vient de l'appel que vous faites... Si vous tournez PH >= 4.3, il vaut mieux mettre:
CODE
header("HTTP/1.0 301 Moved Permanently");

ou
CODE
header("HTTP/1.1 301 Moved Permanently");

que
CODE
header("Status: 301 Moved Permanently");


Parce que par défaut, header(location:...) renvoye une entête 302 sauf si le status est défini avant. Je pense que votre syntaxe ne doit pas être totalement respectée. wink.gif

Dan
Anonymus
solo, tu as quelle url, comme renvoi vers le hub ?
Et quel code utilises tu ?

Et..
Ne serait ce une erreur, de penser que le code 302 ne donne que des redirections temporaires ? Quand on regarde la définition des codes http, on a :
302 : la page existe, mais à une nouvelle adresse. (sans dire si c'est temporaire ou pas.. )
Nicolas
CITATION
Cela vient de l'appel que vous faites...


Ok merci wink.gif Est-ce que cela (le fait d'avoir un http 302) a pu avoir des "incidences" sur le référencement ?
Anonymus
En continuant dans le même ordre, mon htaccess me donne une 302, là ou je m'attendais à avoir une 301 sad.gif

CODE
RedirectPermanent ancienne_page.php http://www.nouveau_domaine.com/
Ganf
Je confirme Dan. Pour simplifier la vie de l'utilisateur (sic), PHP repère les entêtes "Location" et passe tout seul le code de retour HTTP à 302. Pour mettre un 301 il faut le définir après.

Sinon je déconseille très fortement l'utilisation des "status:". Suivant qu'on est en CGI ou en module ça marchera ou ne marchera pas. Pour ceux qui sont sous PHP 4.3.0 et supérieur je conseille plutot ce qui suit :
CODE
header("Moved blabla", true, 301);

Le moteur utilisera tout seul la bonne méthode pour renvoyer le code HTTP suivant la manière dont il fonctionne.
Dan
CITATION(Nicolas @ lundi 07 février 2005, 11h23)
Ok merci  wink.gif Est-ce que cela (le fait d'avoir un http 302) a pu avoir des "incidences" sur le référencement ?
*

Non, je ne pense pas du fait que le status était correctement renseigné ensuite.

Mais le mieux est à mon avis d'utiliser le
CODE
header("HTTP/1.1 301 Moved Permanently");


<edit> ou encore le "moved blabla" préconisé par Ganf ci-dessus wink.gif </edit>
Nicolas
CITATION
Non, je ne pense pas du fait que le status était correctement renseigné ensuite.
Mais le mieux est à mon avis d'utiliser le CODE header("HTTP/1.1 301 Moved Permanently");


Ok j'ai fait les modifications ;-)
Anonymus
Donc, pour ce qui est du php, ca donne :

CODE
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domaine.com");
exit();


ou
CODE
header("Moved Permanently", true, 301);
header("Location: http://www.domaine.com");
exit();
Dan
Pour une discussion sur le RedirectPermanent, les infos sont là: http://www.webmaster-hub.com/index.php?showtopic=5340

En 2 mots, RedirectPermanent est surtout utilisé pour rediriger une arborescence vers la même arborescence sur un autre domaine ou répertoire.
Dans ton cas, Anonymus, tu rediriges une page vers un répertoire...
Thanh
CITATION(Anonymus @ lundi 07 février 2005, 11h21)
solo, tu as quelle url, comme renvoi vers le hub ?
Et quel code utilises tu ?


J'ai pingé cette URL : http://immo.wildcroft.com/publication/article39.html

et j'utilises un script PHP perso :
http://www.sutekidane.net/labo/php/ping/

^_^
Antoine Cailliau
CITATION(solo @ lundi 07 février 2005, 12h45)
et j'utilises un script PHP perso :
http://www.sutekidane.net/labo/php/ping/
*

J'avais jamais vu ton script. Génial smile.gif
Dan
CITATION(solo @ lundi 07 février 2005, 11h45)
Celle là donnait effectivement un Statut 301 correct. C'est celle dont je me sers pour faire les tests vu que j'ai mis la redirection en place moi-même.
Je sais donc comment elle est faite smile.gif
Dan
CITATION(solo @ lundi 07 février 2005, 11h45)
et j'utilises un script PHP perso :
http://www.sutekidane.net/labo/php/ping/
*

Pas mal comme outil, mais en faisant un ping "head" sur www.google.com, il sort un header 200 ... alors que l'analyseur d'entêtes du Hub montre bien les 2 redirections 302 wink.gif

Tu ne dois ressortir que le résultat de la dernière redirection je pense.
Thanh
Je regarderais merci smile.gif
Anonymus
CITATION(solo @ lundi 07 février 2005, 11h45)
et j'utilises un script PHP perso :
http://www.sutekidane.net/labo/php/ping/

^_^
*

Ca ne marche pas, chez moi. Ca donne des erreurs javascript.
Dan
CITATION(Anonymus @ lundi 07 février 2005, 12h31)
Ca ne marche pas, chez moi. Ca donne des erreurs javascript.
*
Chez moi ça marchait ce matin, mais cela ne fonctionne plus non plus.
Une modif du code sans doute ?
Thanh
Oui, j'ai changé un chti truc je regarderais à nouveau ce soir. blush.gif
Thanh
J'ai pris le temps de regarder, j'avais donné un nom de variable qu'il ne fallait pas.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.