Empty redirect et pourtant non :\

WRInaute passionné
Bonjour

J'ai réalisé une redirection 301 via php pour une ancienne page de recherche vers la nouvelle ...
jusqu'à là rien de bien compliqué ...

Le problème se situe au niveau des GoogleWebmasterTools
J'ai toute une flopée de "Empty redirect", plusieurs centaines de milliers ...
Pourtant, lorsque je clique sur une URL incriminée, celle-ci affiche bien les résultats (via la nouvelle page) et est affublée d'une 301 en entete comme voulu.

1 - Selon vous, pourquoi GWT me notifie "Empty redirect" ?
2 -Pensez-vous que cela soit préjudiciable en terme SEO ?
 
WRInaute accro
D'après ce que je comprends, "Empty redirect" signifierait que tu renvoies un 301, mais pas de header "Location".

Tu as un exemple d'URL?

Jacques.
 
WRInaute accro
C'est bien ça: tu renvoies un 301, pas de header Location, et une page complète. Bref, il n'y a pas de redirection alors que tu dis qu'il y en a une, c'est forcément troublant pour un moteur de recherche...

C'était quoi l'objectif initial?

Jacques.
 
WRInaute passionné
ok ok merci Jacques.
L'objet initial etait de transferer les recherches sur une autre techno ...
Donc si je comprends bien, l'erreur est dûe au code suivant :
Code:
if (!empty($_GET['search'])) {
header("HTTP/1.0 301 OK");
$file_to_include = "http://www.XXXXXXX.fr/XXXXXXX.php?search=".$XXXXXXXXXXXXXXXXXXX."&var2=".XXXXXXXXXXXXXX;
$res_include = include($file_to_include);exit();
}
qu'il faut remplacer par
Code:
if (!empty($_GET['search'])) {
header("HTTP/1.0 301 OK");
$file_to_include = "http://www.XXXXXXX.fr/XXXXXXX.php?search=".$XXXXXXXXXXXXXXXXXXX."&var2=".XXXXXXXXXXXXXX;
header("location:$file_to_include");
exit();
}
 
WRInaute accro
Ca dépend de ce que tu veux faire, mais oui, au choix:
- soit tu fais le include mais tu renvoies un 200 (avec tous les problèmes associés aux includes distants)
- soit tu fais un 301 et tu envoies le header Location qui va bien

Dans le premier cas, l'URL ne change pas, et personne ne se rend compte de rien. Dans le deuxième, il y a réellement une redirection externe visible.

NB: Traditionnellement, on écrit les headers HTTP avec une majuscule, et un espace après le ":", donc "Location: $url" plutôt que "location:$url". C'est loin d'être obligatoire, mais c'est plus joli :)

Jacques.

EDIT: typo
 
WRInaute passionné
jcaron a dit:
Ca dépend de ce que tu veux faire, mais oui, au choix:
- soit tu fais le include mais tu renvoies un 200 (avec tous les problèmes associés aux includes distants)
- soit tu fais un 301 et tu envoie le header Location qui va bien...

J'sais pas trop quoi choisir :?: :mrgreen:
 
Discussions similaires
Haut