Retourne la page 404 si non existante # PHP

J’ai un système de révision dynamic en place qui affiche 30 avis par page et, après avoir reçu 30 avis, il est mis en page. J’ai donc des pages telles que

/ Avis / Ville / Boston /

/ Avis / Ville / Boston / Page / 2 /

/ Avis / Ville / Boston / Page / 3 /

et ainsi de suite

Malheureusement, Google semble indexer des pages à travers ce qui semble être une inférence – telle que

/ Avis / Ville / Boston / Page / 65 /

Cette page n’existe absolument pas et j’aimerais en informer Google. Actuellement, il affiche une page de révision mais sans commentaires. Je ne peux pas imaginer que cela soit très bon pour le référencement. Donc, ce que j’essaie de faire si tout d’abord vérifier le nombre de résultats de ma requête MySQL, et s’il n’y a pas de résultats, retournez un 404 et transférez-les à la page d’accueil ou à une autre page.

Actuellement, c’est ce que j’ai.

if (!$validRevQuery) { header("HTTP/1.0 404 Not Found"); header("Location: /index.php"); exit; } 

Suis-je sur la bonne voie?

Une redirection est un code de statut tout comme le 404. Vous ne pouvez pas avoir deux codes de statut.

Vous devez sortir le statut 404 et afficher simultanément un corps de réponse (= une page d’erreur).

 if (!$validRevQuery) { header("HTTP/1.0 404 Not Found"); .... output full HTML structure here ..... exit; } 

Vous ne pouvez pas tous les deux envoyer un code de statut 404 et faire une redirection (généralement le code de statut 3xx ). Vous ne pouvez en effectuer qu’une: envoyez un code de statut 404 et un document d’erreur ou répondez par une redirection.

Comme le suggère Pekka, la meilleure option est de faire un statut 404, puis de placer votre code de page 404 après cela. C’est une mauvaise pratique pour le SEO si vous ne faites que 301 (redirect) la page car les moteurs de recherche continueront à visiter la page pour voir si la redirection est toujours présente.