web-dev-qa-db-fra.com

Que dois-je mettre dans htaccess pour créer une page d'erreur 410 lorsqu'un paramètre d'URL est présent?

J'ai essayé de créer une page d'erreur 410 mais je me suis rendu compte que j'avais créé une redirection 302 vers une page 410.php. Au lieu de cela, je souhaite utiliser une erreur 410 pour bloquer un nombre infini de pages créées dynamiquement et indexées par Google. J'ai environ 30 000 liens internes indexés sur Google grâce à un moteur de recherche interne défectueux:

  • http://www.example.com/?searchkey=1_q
  • http://www.example.com/?searchkey=2ak - (etc ... dure 30k fois)

Que devrais-je écrire dans htaccess pour bloquer quoi que ce soit avec ce paramètre "searchkey" tel qu'une page d'erreur 410 est servie? (Je ne suis pas un programmeur, alors j'apprécierais une réponse simplifiée.)

4
dannyboy222

Vous pouvez le faire en utilisant la règle de réécriture suivante dans .htaccess:

RewriteEngine on 
RewriteCond %{QUERY_STRING} searchkey
RewriteRule .* - [G,L]
  • .* signifie qu'il le fera pour toutes les URL de votre site (tant que la condition d'avoir "searchkey" dans la chaîne de requête est remplie)
  • - signifie laisser l'URL seul et ne pas le changer
  • G signifie "Gone" - envoie le statut 410
  • L signifie "Last" - afin qu'aucune autre règle de réécriture ne soit exécutée

Etant donné que vous avez une page personnalisée 410 parties, vous pouvez également utiliser la directive suivante .htaccess pour l’afficher à la place de la page d’erreur 410 par défaut partie:

ErrorDocument 410 /410.php
7
Stephen Ostermiller