2 votes

PHP die(header) : J'ai des problèmes de référencement ?

J'ai ce bout de code au début de mon fichier index.php :

        if ( !isset($_GET['cat']) )
        die(header("Location: ?cat=top"));

En fait, si aucune catégorie n'est définie, le système redirige automatiquement vers la catégorie "Top".

J'ai maintenant remarqué que Google a ajouté index.php, mais qu'il n'affiche que l'URL dans les résultats de recherche, au lieu d'afficher les balises méta que j'ai définies.

Toutes les autres pages sont parfaitement indexées, mais pas le fichier index.php. Une solution à ce problème ?

Merci d'avance !

4voto

TRD Points 1027

PHP utilise par défaut une redirection 302 lorsqu'il utilise l'en-tête : Location. Cela perturbe le référencement car Google n'échange pas l'emplacement redirigé avec l'emplacement initial. Essayez d'utiliser

if ( !isset($_GET['cat']) ) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: ?cat=top");
    die();
}

Cela devrait indiquer à Google d'indexer l'emplacement redirigé qui contient les méta-informations.

2voto

shadyyx Points 10163

Fonction die est capable d'imprimer les données de type texte/chaîne, je n'ai jamais vu l'appel d'une fonction header sur die .

La bonne approche devrait être :

if ( !isset($_GET['cat']) ) {
    header("Location: ?cat=top");
    die();
}

Vous pouvez appeler exit; au lieu de die(); .

-1voto

Miqdad Ali Points 2517

Je pense qu'il n'y a pas besoin d'appeler die() vous pouvez simplement appeler comme

if ( !isset($_GET['cat']) )
   header("Location: ?cat=top");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X