Une fois le site rédigé, il peut être intéressant de canaliser les robots et fournir des pages d’erreurs personnalisées aux requêtes incorrectes. Pour pouvoir mettre en place un tel système, on utilise les fichiers .htaccess et robots.txt.
les fichiers robots.txt : pouvoir fermer certaines portes
Lorsqu’on met un site en ligne, on ne souhaite pas nécessairement que l’intégralité du contenu puisse être absorbé par les robots. Ainsi, le répertoire cgi-bin, celui d’un éventuel domaine réservé ou plus classique une page en construction n’ont pas à être référencés. Pour cela, on utilise le fichier robots.txt, qui doit impérativement se trouver à la racine de votre site.
Sa structure est simple et intuitive. Voici un petit exemple :
User-agent: *
Disallow: /cgi-bin/
Disallow: /construction/
Disallow: /intra/
- User-agent permet de définir quels robots doivent respecter les limitation d’en dessous. En mettant un *, on définit les règles pour tous les robots sans exception.
- Disallow fournit l’adresse relative d’un répertoire interdit. Le robot n’ira pas absorber le contenu du répertoire, qui ne sera donc pas référencé.
Il est tout à fait possible de préciser des droits différents pour plusieurs robots. Le mot-clé User-agent séparant les listes de restrictions, on peut fournir un fichier tel que celui-ci :
User-agent: *
Disallow: /intra/
Disallow: /cgi-bin/
User-agent: fast
Disallow: /forum/
User-agent: GoogleBot
Disallow: /test/
User-agent: BadBot
Disallow: /
Dans le code ci-dessus, on commence par fournir des interdictions générales. Ainsi, aucun robot ne pourra aller dans le répertoire intra, ni dans le répertoire cgi-bin. Ensuite, on spécialise les restrictions. Dans l’exemple, GoogleBot ne peut pas non-plus aller dans le répertoire test, et BadBot ne peut carrément pas référencer le site.
L’utilisation des fichiers robots.txt est simple, il est donc recommandé de l’utiliser dès que l’on souhaite canaliser un minimum les robots. Son utilisation est complètement indépendante de toute architecture et de tout serveur HTTP, alors il ne faut pas hésiter.
htaccess, utiliser toute la puissance du serveur web et en modifier le comportement à gré
Contrairement aux fichiers robots.txt, les fichiers .htaccess sont assez complexes à rédiger, et beaucoup plus puissants. Ils permettent l’url-rewriting (cf. note précédente), la restriction d’un répertoire à des utilisateurs référencés sur le site au moyen d’un mot de passe, ou encore de modifier les pages d’erreurs par défaut du serveur web en des pages personnalisées, permettant ainsi une redirection de l’utilisateur (comme du robot) aisée.
Dans cette note, nous ne nous occuperons que de la partie personnalisation du message d’erreur et la redirection de page. Si vous êtes intéressé par la restriction des utilisateurs, la partie Référence fournit un lien vers une documentation complète de ces fichiers.
Personnaliser les pages d’erreur
Pour pouvoir modifier les pages d’erreur par défaut, il faut bien sûr… créer ces pages d’erreur. On considérera que le site contient un répertoire error/ à la racine, qui contiendra ces pages. Bien entendu, il faudra ajouter le répertoire error/ au fichier robots.txt.
Voici un exemple de fichier .htaccess redéfinissant des messages d’erreur pour les erreurs les plus courantes :
ErrorDocument 400 /error/bad-request.html
ErrorDocument 403 /error/forbidden.html
ErrorDocument 404 /error/page-not-found.html
ErrorDocument 500 /error/internal-server-error.html
Avec un tel fichier, les erreurs HTTP 400 (requête invalide), 403 (accès interdit), 404 (page non trouvée) et 500 (erreur interne du serveur) renverront vers les pages que vous avez rédigées. Vous pouvez ainsi mettre dans ces pages une structure de base (titre du site, pied de page…) et placer par exemple un lien ou une redirection automatique, avec un minimum de texte explicatif.
Rediriger des pages
En général, on précise les redirections de page dans la page elle-même, au moyen des balises meta. Cependant, il est possible de rassembler les redirections dans le fichier .htaccess. Voici un exemple de redirection via .htaccess :
Redirect /rev-1/index.html /rev-1.0/index.html
En cas de renommage d’un répertoire, on commence d’abord par faire une copie de celui-ci et on applique une redirection à l’ancien répertoire. On évite ainsi que les références à ce répertoire dans les moteurs de recherche ne soient pas des liens morts, ce qui nuirait à votre site.
Jusqu’ici, nous avons utilisé des liens relatif à la racine du site. Il est tout à fait possible de fournir des lien absolus, commençant par http://. Ainsi, un changement complet d’adresse, ou un lien vers un autre site peut se gérer de la même manière.
Les fichier .htaccess sont très utiles à la gestion d’un site et permettent de garder un référencement valable, même après modification importante du site. Leur défaut principal reste leur complexité, car ils permettent de faire énormément de choses, ce qui peut rendre leur rédaction complexe.
Voici un exemple plus complet de fichier .htaccess, pour se faire un peu peur… :’)
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
ErrorDocument 400 /error/bad-request.html
ErrorDocument 401 /error/auth-request.html
ErrorDocument 402 /error/payment-request.html
ErrorDocument 403 /error/forbidden.html
ErrorDocument 404 /error/page-not-found.html
ErrorDocument 500 /error/internal-server-error.html
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
...
Comme vous constatez, ça devient tout de suite moins agréable. Cependant je vous conseille de lire la documentation d’Apache à ce propos (cf. Références), ainsi que le deuxième site dont le lien est donné plus bas.
Références
- http://docs.abondance.com/ : un site assez complet pour bien référencer son site web.
- http://httpd.apache.org/docs : documentation du fichier htaccess, par l’association Apache.
- http://www.javascriptkit.com/howto : site de documentation sur les technologie web, fournissant un grand nombre d’information sur les fichiers .htaccess
Good Blog…
Hi! Would you mind if I share your blog with my myspace group? There’s a lot of folks that I think would really appreciate your content. Please let me know. Thanks…