web-dev-qa-db-fra.com

Comment créer 410 erreurs pour des pages qui n'existent plus sur mon site Web PHP?

WordPress a automatiquement ajouté des URL à mon site Web. Ils ont été indexés dans Google. Maintenant, je veux que ces URLs affichent comme "410 Gone".

Par exemple:

  • /contact/
  • /about-us/

Ces pages ne sont plus sur le site. Le nouveau site web est créé avec PHP.

Comment puis-je les rendre 410 pages d'erreur ou obliger Google à les supprimer de l'index de recherche?

2
ranvijay singh

Directement en PHP, tout ce dont vous avez besoin est de sortir l’en-tête 410:

header( "HTTP/1.1 410 Gone" );

Pour des raisons de sécurité, il est recommandé d'appeler exit() après.

Supposons que vous ayez une poignée de pages. Vous pouvez créer un fichier pour chaque fichier ou modifier le fichier .htaccess à l’aide d’un RewriteRule qui mappe toutes les pages disparues dans un fichier PHP qui envoie le statut 410 comme montré ci-dessus.

Techniquement, vous n'avez pas du tout besoin de PHP, car .htaccess peut envoyer les règles basées sur le statut que vous avez définies, telles que:

RewriteRule ^contact/ - [L,R=410]
RewriteRule ^about/ - [L,R=410]

Pour un grand nombre de pages de ce type, je code généralement la logique dans une page d'erreur personnalisée écrite en PHP. Il est appelé lorsqu'un fichier est introuvable et peut effectuer une recherche pour déterminer s'il doit renvoyer ou non l'en-tête 410 (et effectuer d'autres tâches, selon les besoins, y compris la collecte de statistiques sur la fréquence d'accès à ces pages).

2
Itai

Lorsque Google reçoit 404 erreurs non trouvées pour une page à plusieurs reprises, il la traite comme une 410 disparue et les supprime donc de l'index. La ou les deux premières fois où Google obtient un 404, la page ne sera pas supprimée de l'index, car elle est traitée comme une éventuelle erreur temporaire.

Strictement parlant, vous n'avez pas besoin de marquer les pages disparues comme étant des pages 410, mais si vous souhaitez le faire, tout ce que vous avez à faire est d'aller dans votre fichier .htaccess à la racine du site et d'ajouter la ligne suivante ...

Redirect 410 /foo/bar/demo.php

0
Chris Rutherfurd