[Résolu] Redirection 301 en PHP non prise en compte (code 200 à la place mais redirection)

Tortue facile

Nouveau WRInaute
Bonjour à tous,

Voilà mon problème : j'ai un site web http://www.latortuefacile.fr/ qui utilise l'url Rewrting partout pour avoir de liens lisibles et bon pour le référencement. récemment j'ai mis en oeuvre des redirections pour éviter le duplicate content.

Par exemple voilà un bon lien http://www.latortuefacile.fr/annuaire-2-12-region-ile-de-france.html
Maintenant un mauvais lien http://www.latortuefacile.fr/annuaire-2-12-ile-de-france.html qui va (selon mon code) renvoyer vers la bonne page avec un code 301. La redirection marche bien pour le visiteur mais la page avec le mauvais lien revoie ça comme header :

Code:
HTTP/1.1 200 OK
Date: Fri, 16 Apr 2010 11:03:25 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch
X-Powered-By: PHP/5.2.6-1+lenny3
Vary: Accept-Encoding
Content-Type: text/html

Pourtant voilà mon code PHP:

Code:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.latortuefacile.fr/annuaire-2-12-region-ile-de-france.html");
exit();

J'ai même essayé avec ce code mais pareil ça ne renvoie qu'un 200 :

Code:
header("Status: 301 Moved Permanently", true, 301);
header("Location:http://www.latortuefacile.fr/annuaire-2-12-region-ile-de-france.html");
exit();

Ça doit un truc tout bête mais la je sèche, une idée de pourquoi le code renvoyé n'est pas le bon ?

Merci d'avance.

Edit : c'est bon j'ai trouvé, en fait il y avait un bug dans mon code, si on demandait une page via un script et qu'on ne spécifiait pas d'User Agent on avait un message d'erreur d'où le code 200.
 

seebz

WRInaute impliqué
Re: Redirection 301 en PHP non prise en compte (code 200 à la place mais redirection)

T'as pas un warning qui dit que du code a déja été envoyé au navigateur lorsque tu appelle la fonction header() ?
 

jcaron

WRInaute accro
Je ne sais pas ce que tu utilises pour voir le résultat, mais l'URL -http://www.latortuefacile.fr/annuaire-2-12-ile-de-france.html renvoie bien un 301:

Code:
HTTP/1.1 301 Moved Permanently
Date: Fri, 16 Apr 2010 11:53:28 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch
X-Powered-By: PHP/5.2.6-1+lenny3
Set-Cookie: ltf=1271418808; path=/
Location: http://www.latortuefacile.fr/annuaire-2-12-region-ile-de-france.html
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html

Je pense que ce que tu obtiens c'est le code final après le redirect, ce qui est assez normal si tu vois ça à travers un navigateur...

Jacques.
 

Tortue facile

Nouveau WRInaute
Tortue facile a dit:
Edit : c'est bon j'ai trouvé, en fait il y avait un bug dans mon code, si on demandait une page via un script et qu'on ne spécifiait pas d'User Agent on avait un message d'erreur avant le header d'où le code 200.

Merci, mais mon edit a pas été vu.
 

Discussions similaires

Haut