/ / Retour du code de statut 410 pour les URL contenant certaines chaînes - regex, apache, .htaccess, mod-rewrite, redirect

Renvoyer le code de statut 410 pour les URL contenant certaines chaînes - regex, apache, .htaccess, mod-rewrite, redirect

J'ai récemment créé, à l'aide de stackoverflow, un ensemble de règles de réécriture permettant de rediriger 301 URL contenant certains mots ou certaines chaînes. Les règles sont les suivantes:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [L,R=301]

Dans ce cas, toutes les URL contenant"name = Your_Account" sont redirigés vers la page de recherche. Cependant, il est considéré comme la meilleure pratique de retourner un statut 404 ou même 410. Un 410 serait mieux, car bon nombre de ces URL ont été créées et indexées de manière dynamique par Google en raison du manque de métadonnées sans index. Je pourrais faire quelque chose comme ça:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [L,R=410]

Mais cela renverrait une erreur 410 (disparu) et une redirection, ce qui n’est probablement pas valide. Cela fonctionne, le navigateur ne redirigera pas l'URL, mais je préférerais une solution propre.

Réponses:

0 pour la réponse № 1

À des fins de référencement, 301 fonctionnera également correctement.

Au lieu de R=410 tu utilises G drapeau:

RewriteCond %{QUERY_STRING} (^|&)name=Your_Account(&|$) [NC]
RewriteRule ^ /suchen/? [G]

Également G ou 410 ne fera pas la redirection complète des URL, vous devez tester dans un nouveau navigateur pour éviter la mise en cache 301.