web-dev-qa-db-fra.com

Comment puis-je donner à une série spécifique d'URL le statut "410"?

Le serveur a été piraté et mon fichier . Htaccess a été remplacé par une redirection vers un caractère générique (spam).

Je vois beaucoup de requêtes comme celles ci-dessous même après avoir nettoyé mon serveur:

example.com/cobwebbing-gurkha1486mskh27556/64b75843rl69s2/
example.com/countercheck-gurkha1486mskh22793/n4a670a2h43m/
example.com/countercheck-gurkha1486mskh19573/36c9on2137rs/

Comment puis-je changer ces URL en 410 Gone? Je voudrais les rediriger vers une page que j'ai faite (fail.php) qui émet un en-tête 410.

Voici le htaccess actuel piraté. J'ai essayé de faire en sorte que la fin du fichier (?gurkha) soit redirigé vers fail.php mais cela ne semble pas fonctionner. Il continue de passer à la WordPress 404. Le WordPress 404 consomme de la mémoire système et j'aimerais un moyen plus élégant et plus efficace de gérer ces URL.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^\/(.*)-(gurkha)([0-9]+)mskh([0-9]+)\/(.*)$ ?gurkha$3=$4&%{QUERY_STRING}[L]
</IfModule>

Je voudrais vraiment obtenir ces URL de google. Comment puis-je changer mon . Htaccess alors ils sont 410 Gone?

2
Zuriel
/cobwebbing-gurkha1486mskh27556/64b75843rl69s2/
/countercheck-gurkha1486mskh22793/n4a670a2h43m/
/countercheck-gurkha1486mskh19573/36c9on2137rs/

Pour créer une URL contenant -gurkha suivi d'un chiffre, échouez tôt avec un système généré 404 (en contournant WordPress). Vous pouvez alors utiliser quelque chose comme celui-ci à l'adresse top de votre fichier .htaccess:

RewriteRule -gurkha\d - [R=404]

Notez que cela doit aller avant le WordPress _ contrôleur-avant. c'est à dire. avant la directive <IfModule mod_rewrite.c>. Vous n'avez pas besoin de répéter la directive RewriteEngine.

UPDATE: Si, toutefois, vous voyez toujours une page WordPress générée 404, il est possible que vous ayez un document d'erreur 404 personnalisé qui pointe vers un document WordPress (par exemple, 404.php). Vous pouvez rétablir les valeurs par défaut simples d'Apache en incluant les éléments suivants dans votre fichier .htaccess:

ErrorDocument 404 default

Si vous souhaitez que Google supprime ces URL plus rapidement, vous pouvez remplacer l'indicateur R=404 par G (gone) afin qu'il serve un 410 Gone à la place. (Bien que cela avertisse potentiellement les utilisateurs/robots/pirates informatiques - mais ce n'est probablement pas un problème.) Encore une fois, réinitialisez la ErrorDocument (comme ci-dessus) si vous voyez toujours une page WordPress retournée .

Vous pouvez ensuite utiliser le outil de suppression des URL de la console de recherche Google pour supprimer explicitement ces URL du SERPS.

Une réponse non autorisée 401 ne forcera pas nécessairement Google à supprimer l'URL. Et cela ne fera que soulever davantage de suspicion. (Bien que, il semble que le PO ait initialement désigné par erreur "401" et en réalité "410".)


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^\/(.*)-(gurkha)([0-9]+)mskh([0-9]+)\/(.*)$ ?gurkha$3=$4&%{QUERY_STRING}[L]
</IfModule>

Vous devriez enlever ce dernier RewriteRule. Dans l'état actuel des choses, il ne fera rien, mais comporte également plusieurs "erreurs":

  1. Dans les fichiers .htaccess par répertoire, le chemin d'URL contre lequel le RewriteRule pattern ne commence jamais par une barre oblique. Ainsi, cette RewriteRule ne correspondrait à rien dans ce contexte.
  2. En plaçant cette directive après sur le contrôleur frontal, elle ne sera visible que pour les demandes d'URL mappées sur des fichiers ou des répertoires physiques. Ces URL ne correspondent probablement pas à de vrais fichiers/répertoires, donc encore une fois, cela ne correspondra jamais.
  3. En plaçant une directive à l'intérieur du bloc # BEGIN WordPress/# END WordPress, il sera probablement écrasé lorsque WordPress sera mis à jour.

Autres points "moins graves" concernant ce dernier RewriteRule:

  1. Il n'y a pas d'espace entre le CondPattern et flags (c'est-à-dire avant le [L]). Cela pourrait entraîner une réécriture invalide. Et potentiellement causer des problèmes si vous avez ajouté plus de directives plus tard (car il n'y a pas de drapeau L).
  2. Il n'est pas nécessaire de supprimer les barres obliques obliques inverses (par exemple, \/) dans une expression rationnelle Apache standard. (Les espaces sont utilisés comme délimiteurs et les barres obliques n'ont pas de signification particulière.)
  3. Beaucoup de groupes capturés inutiles (sous-modèles entre parenthèses) qui ne sont pas utilisés.
1
MrWhite