Bonjour,

Voila je rencontre un problème avec la custom page 404 d'un site vitrine.

Search console

Ce que google me montre dans la search console, donc des duplications de balises, titles, descriptions puis de façon plus détaillée les chemins de l'image renvoient vers la custom 404.html.

Je pense donc que la page 404.html est réferencée par google ce qui est un problème

ma page default.php

<?php
require ROOT . '/views/templates/header.html';
echo $app->getPageContent($page);
require ROOT . '/views/templates/footer.html';

controller.php

Je gère les url et l'affichage du contenu avec un switch php qui prend en paramètre $_GET[page] et renvoit l'affichage suivant le case.
dans la function getPageContent($page) :

    switch ($page) {
default:
        require ROOT . '/views/pages/404.html';
        break;

Par défault tout ce qui ne match pas appelle la 404.html.
Mon problème vient peut-être de là.

Une proposition ? une idée?

Dois-je revoir la logique du controller?
Je me fait simplement des idées?

Franchement je sais pas trop.

Bien à vous

4 réponses


Bonjour,
Je pense que google considére la page 404 comme une page standard.
Juste avant d'afficher la page, esseyez avec un header en 404:

header("HTTP/1.0 404 Not Found");
Romain m
Auteur

merci je vais essayer dès que possible

Romain m
Auteur

Le code de l'en-tête de la page est déjà défini dans default.php, le header et le footer sont toujours les mêmes et seul le contenu change, du coup le code 200 est déjà envoyé dans le header avant de require la 404.html ce qui m'empêche de d'utiliser header("HTTP/1.0 404 Not Found");.

Faut que je me penche dessus, mais si quelqu'un a une suggestion...je suis preneur.

Romain m
Auteur

Du coup j'ai plutôt ajouté cette ligne http_response_code(404); qui resoud mon problème en modifiant le code de réponse dans l'en-tête HTTP

Y'a plus qu'a voir si Google ne la considère plus comme une page standard.