Les règles
Prologue:
Les robots WWW (aussi appelés Spiders, Crawlers ou Wanderers) sont des programmes qui traversent les pages du World Wide Web de manière recursive.
En 1993 et 1994 il y a eu des circonstances durant lesquelles les robots ont visitées des pages alors qu´ils n´étaient pas les bienvenus pour diverses raisons. Souvent ces raisons étaient spécifiques aux robots; p.e. les robots submergeaient les serveurs avec leurs quêtes "Rapid-Fire", ou ils récupèraient les mêmes pages plusieurs fois. Dans d´autres situations ils traversaient des parties de serveurs WWW de manière inappropriée; p.e. des arborescences virtuelles trés profondes, redondance d´informations, des informations temporaires, ou des scripts cgi avec effets secondaires (comme p.e. des votes).
Ces incidents indiquaient donc la nécessité de mécanismes pour les serveurs WWW qui indiquent aux robots quelle partie de leurs serveurs ne devraient pas être accessibles.
La méthode:
La méthode pour exclure les robots d´un serveur consiste à créer un fichier sur le serveur spécifiant des règles d´accès pour robots. Ce fichier doit être accessible par le HTTP sur l´URL "/robots.txt". Le contenu de ce fichier est expliqué par la suite.
Ce choix fut pris parce-qu´il peut être facilement implémenter sur tous serveurs WWW existants, et un robot peut trouver les règles d´accès avec uniquement un seul fichier.
Le choix de l´URL fut motivé par les critères suivants:
- Le nom du fichier doit correspondre à la nomenclature de fichiers, commune à tous les systèmes d´exploitation.
- L´extension du nom du fichier ne doit pas nécessiter une configuration supplémentaire du serveur.
- Le nom du fichier doit clairement expliquer son propos et doit être facile à retenir.
- Une ressemblance (et ainsi une possible confusion) avec d´autres fichiers existants se doit d´être minimale.
Le format:
Le format et la sémantique du fichier "/robots.txt" sont les suivants:
- Le fichier est constitué d´une ou plusieurs donnée(s) séparées par une ou plusieurs lignes vides (terminées par CR, CR/LF ou LF). Chaque donnée contient une ligne de la forme "<champs>:<espace optionnel><valeur><espace optionnel>". Le champs est insensible à la casse.
- Des commentaires peuvent être inclus suivant les conventions de l´UNIX Bourne Shell:
le caratère "#" indique que l´espace précédent (s´il existe) et le reste de la ligne, jusqu´à sa fin sont ignorés. Les lignes ne contenant qu´un commentaire sont complètement considérées comme inexistantes. - La donnée commence par une ou plusieurs lignes "User-agent", suivie d´une ou plusieurs lignes "Disallow" comme décrit plus bas. Des entêtes inconnues sont ignorées.
- User-agent
- La valeur de ce champs est le nom du robot auquel les règles d´accès s´appliquent. Si plusieurs champs User-agent sont présents les données s´appliqueront aux robots respectifs. Il doit y avoir au moins un champs par donnée.
- Le robot doit pouvoir interpréter cette ligne librement. Il est recommandé de saisir son nom sans respect de la casse et sans information de version.
- Si la valeur est "*", la donnée concernera tous les robots qui n´auront pas trouvés de champs les concernants. Il n´est pas permis d´avoir plus d´une ligne comme celle-ci.
- Disallow
- La valeur de ce champs indique une URL partielle qui ne devra pas être visitée. Ceci peut être un chemin complet ou partiel; aucune URL commençant par cette valeur ne sera récupérée. Par exemple, "Disallow: /aide" interdira l´accès à /aide.html ainsi qu´à /aide/index.html; tandis que "Disallow: /aide/" interdira /aide/index.html mais pas /aide.html. Une valeur vide indiquera que toutes les URLs peuvent être récupérées. Au moins un champs Disallow doit être présent dans une donnée.
Exemples:
- L´exemple suivant de "/robots.txt" indique qu´aucun robot visitera quelconque URL commençant par "/monespace/carte/" ou "/tmp/" ou /foo.html:
# robots.txt pour http://www.exemple.com/
User-agent: *
Disallow: /monespace/carte/ # ceci est un espace virtuel infini
Disallow: /tmp/ # ceci va bientôt disparaître
Disallow: /foo.html
- L´exemple suivant de "/robots.txt" indique qu´aucun robot visitera quelconque URL commençant par "/monespace/carte/" à l´exception du robot du nom cyberexploreur:
# robots.txt pour http://www.exemple.com/
User-agent: *
Disallow: /monespace/carte/ # ceci est un espace virtuel infini
# cyberexploreur sait où aller
User-agent: cyberexploreur
Disallow:
- L´exemple suivant de "/robots.txt" indique qu´aucun robot visitera quelconque URL sur ce site:
# foutez le camp!
User-agent: *
Disallow: /
- L´exemple suivant de "/robots.txt" n´admet qu´un seul robot sur ce site:
# cyberexploreur est bienvenu!
User-agent: cyberexploreur
Disallow:
# les autres peuvent aller voir ailleurs!
User-agent: *
Disallow: /
- L´exemple suivant de "/robots.txt" admet tous les robots sauf un:
# cyberexploreur n´est pas bienvenu!
User-agent: cyberexploreur
Disallow: /
- Pour exclure tous les fichiers sauf un seul:
Ce qui est un peu plus corsé vu que le champs "Allow" n´existe pas. Le plus simple à faire est de mettre les fichiers interdits dans un répertoire nommé disons "affaires" et de laisser le fichier permis dans le répertoire au-dessus: User-agent: *
Disallow: /paul/affaires/
- Ou alternativement vous pouvez interdire les pages interdites:
User-agent: *
Disallow: /paul/paul.html
Disallow: /paul/pierre.html
Disallow: /paul/jacques.html