Je souhaite autoriser le dossier /news/
et interdire tous les sous-dossiers de /news/
par exemple. /news/abc/
, /news/123/
. Comment puis-je faire cela s'il vous plaît?
Je pense que Disallow: /news/
bloquera tout ce qu'il contient, y compris /news/
lui-même.
Est-ce que Disallow: /news/*/
fera le travail, puisqu'il n'y a pas de moyen facile de le tester, je veux en être sûr.
_User-agent: *
Allow: /news/$
Disallow: /news/
_
Explication:
La spécification _robots.txt
_ de Google ( https://developers.google.com/search/reference/robots_txt ), qui est plus à jour que la spécification "officielle", stipule que:
/fish/
_ CORRESPONDRA À TOUT CE QUI SE TROUVE DANS LE DOSSIER _/fish/
_ MAIS NE CORRESPONDRA PAS À _/fish
(et aucun caractère générique nécessaire, puisque "La barre oblique finale signifie que cela correspond à quoi que ce soit dans ce dossier." ) Si vous procédez en quelque sorte au reverse engineering:
_User-agent: *
_ (ou l'agent utilisateur avec lequel vous souhaitez parler)
_Allow: /news/$
_ (permet _/news/
_ mais le caractère _$
_ indique que l’autorisation ne peut pas aller au-delà de _/news/
_)
_Disallow: /news/
_ (interdit tout contenu dans le dossier _/news/
_)
Testez-le dans la console de recherche Google ou dans Yandex ( https://webmaster.yandex.com/tools/robotstxt/ ) pour vous assurer qu'il fonctionne pour votre site.
J'avais en quelque sorte le même problème. Ce:
User-agent: *
Allow: /folder/$
Disallow: /folder/
Cela ne fonctionnait pas pour moi - l'URL/le dossier apparaitraient dans les résultats de la recherche Google - mais cela indiquerait simplement AUCUN INFO ou quelque chose - rien de la page html ne serait indexé. Alors j'ai essayé:
User-agent: *
Allow: /folder/index.html
Disallow: /folder/*
Même chose.
Le but de DID était de placer cette balise meta dans le fichier index.html dans/folder /:
<META NAME="ROBOTS" CONTENT="INDEX, NOFOLLOW">
Avec cette balise - aucun lien n'a été suivi vers d'autres pages ou dossiers, mais le contenu de index.html DID apparaît.