Le fichier .htaccess est un outil très utile pour sécuriser un serveur web, définir des redirections ou désigner des pages d'erreur personnalisées. Derrière son appellation à la sonorité technique, il est en fait très facile à créer et offre alors de nombreuses possibilités de paramétrage sans avoir à modifier la configuration initiale du serveur.

 

Évaluez gratuitement votre site web et découvrez comment l'améliorer avec  Website Grader.

 

Ce fichier est utilisé le plus souvent sur les serveurs Apache, et s'avère utile pour les utilisateurs de WordPress afin de fixer des règles de sécurité, mise en cache ou redirection.

 

Comment fonctionne un fichier .htaccess ?

 

La directive AllowOverride

Afin de fonctionner, le fichier .htaccess nécessite premièrement une configuration adéquate de la directive AllowOverride. C'est cette directive qui permet de déterminer les situations dans lesquelles le fichier .htaccess pourra appliquer ses règles.

Par exemple : Si le serveur est censé appliquer par défaut une règle A, mais que le fichier .htaccess décrète l'application d'une règle B à la place, alors ce sera la règle B qui sera appliquée du moment que la directive AllowOverride autorise ce changement.

Le dernier .htaccess prime

Lorsqu'il y a un conflit de règles entre le fichier .htaccess d'un répertoire et celui de l'un de ses sous-répertoires, c'est le .htaccess du sous-répertoire qui appliquera ses règles. Car il s'agit alors des règles les plus récentes dans l'arborescence.

Par exemple : Supposons l'existence d'un répertoire A comprenant des sous-répertoires A1, A2 et A3. Les règles du .htaccess de A s'appliquent également à A1, A2, et A3. Mais si l'une des règles du sous-répertoire A1 en contredit une autre du répertoire principal A, alors c'est la règle de A1 aui sera appliquée.

 

Pourquoi utiliser un fichier .htaccess ?

De manière générale, le fichier .htaccess est utile si l'on souhaite modifier le fonctionnement d'un site web sans toucher à ses fichiers de configuration.

Voici des exemples de situations dans lesquelles un fichier .htaccess est utile :

  • Faire des redirections 301
  • Utiliser le protocole HTTPS au lieu de HTTP
  • Protéger certaines pages avec un mot de passe
  • Interdire l'accès au site à des adresses IP en particulier
  • Autoriser l'accès au site à des adresses IP en particulier
  • Afficher des pages d'erreur 404 spécifiques

 

Comment créer un fichier .htaccess manuellement ?

Créer un fichier .htaccess est très simple : il suffit de créer un fichier à la racine du serveur web et le nommer « .htaccess », ce qui signifie hypertext access. Des extensions peuvent aider les utilisateurs de CMS dans cette tâche mais la première technique est si facile qu'il serait dommage d'alourdir inutilement le site avec l'installation d'une nouvelle extension.

Avant de créer un fichier .htaccess, il faut vérifier qu'il n'a pas été automatiquement généré, comme c'est systématiquement le cas à l'installation de WordPress. En effet, s'il devait y avoir deux fichiers du même nom à la racine du serveur, alors il pourrait y avoir des problèmes de conflit qui nuiraient au bon fonctionnement du site web.

 

Comment créer un fichier .htaccess automatiquement ?

Le fichier .htaccess est soit créé par le propriétaire d'un site web, soit généré automatiquement. Dans le second cas, cela peut être du fait de l'hébergeur mais aussi du CMS installé, comme WordPress. En effet, à son installation celui-ci va générer un fichier .htaccess afin d'y inscrire ses règles d'écriture. Des extensions peuvent elles aussi générer le fichier .htaccess pour modifier les paramètres serveur.

C'est par exemple le cas de Wordfence, une extension de sécurité, qui va générer un fichier à son installation afin d'interdire l'accès à certains dossiers, les IP de certains pays ou limiter le nombre de tentatives de connexion. Ainsi, via les règles édictées dans le fichier .htaccess, il est possible de changer le comportement du serveur comme pour forcer l'utilisation du protocole HTTPS qui permettra là encore de sécuriser le site.

 

Comment utiliser .htaccess correctement ?

 

Optimiser les URL avec la réécriture

La réécriture des URL est l'une des principales fonctionnalités du fichier .htaccess qui permet alors d'imposer l'utilisation du HTTPS, avec un certificat SSL préalablement installé. Grâce à cette astuce, le site sera parfaitement sécurisé pour les internautes et bénéficiera d'une visibilité optimale. Car de plus en plus de moteurs de recherche, Google en tête, privilégient les résultats en HTTPS. Quant aux navigateurs web, certains vont jusqu'à bloquer les résultats en simple http, affichant alors un message d'alerte pour informer l'utilisateur que le site n'est pas sécurisé.

 

Configurer des redirections pour conserver le trafic

Avec le temps, certaines pages sont supprimées bien qu'elles soient encore référencées ou qu'elles bénéficient de liens sur d'autres sites web. Afin de ne pas perdre ces avantages, mais aussi pour éviter que les internautes tombent sur une page d'erreur 404, il est préférable de créer une redirection. Pour la créer via le fichier .htaccess, il suffit d'ajouter les lignes de code suivantes :

Redirect 301 /ancienne-url/

https://www.siteweb.fr/nouvelle-url/

 

Proposer des pages d'erreur personnalisées

Avec cette astuce, il est possible de rediriger le trafic des pages 404 vers des pages d'erreur personnalisées qui pourront contenir un message spécifique mais aussi des liens vers d'autres pages ou articles afin de conserver l'internaute sur le site et réduire le taux de rebond. Pour modifier la page qui sera affichée lors d'une erreur, il faut spécifier la ligne de code ci-dessous dans le fichier .htaccess :

ErrorDocument 404 /nouvelle-page-404.html

 

Protéger le site web contre les hotlinks

Les hotlinks sont des liens générés automatiquement par certains sites pour exploiter les ressources d'un autre. Par exemple, le site A va faire un lien vers une image du site B pour l'afficher sur son propre site. Il exploite donc les ressources du site B et nuit à sa bande passante, ce qui pourrait au final le ralentir. Pour éviter cela, il est possible d'interdire les liens vers les médias avec le code suivant :

# Bannir les hotlinks

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http:// www.site /.*$ [NC] [OR]

RewriteCond %{HTTP_REFERER} !^http://www.site /.*$ [NC] [OR]

RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]

 

Définir des restrictions d'accès

Cette astuce .htaccess liée à la sécurité du serveur web est l'une des plus intéressantes qu'offre ce fichier. Il est ainsi possible de restreindre l'accès au site à une IP spécifique mais aussi à des plages d'IP. Le propriétaire peut alors bannir un internaute qui essaie de pirater son site ou même un concurrent qui surveille ses évolutions. Le code suivant est alors à utiliser, en remplaçant les XXX par les bonnes valeurs numériques.

## USER IP BANNING

<limit get post="POST">

order allow,deny

deny from XXX.XXX.XXX.XXX

allow from all

</limit>

 

Protéger des dossiers par mot de passe

Certains propriétaires de sites web utilisent des dossiers sur leur serveur pour héberger des données sensibles ou des fichiers dont l'accès doit être limité. C'est par exemple le cas pour les supports de formation interne ou un tableur Excel partagé par l'équipe commerciale. Afin de protéger l'ensemble des éléments contenus dans un dossier, une astuce consiste à le verrouiller par mot de passe. Pour cela, il faut commencer par ajouter le code suivant dans le fichier .htaccess :

AuthType Basic

AuthName "Accès protégé"

AuthUserFile /usr/home/login/www/.htpasswd

require valid-user

Puis, dans le dossier à protéger, il faut créer un fichier .htpasswd en suivant la même méthode que pour le .htaccess et y inscrire les noms d'utilisateur et mots de passe de chaque personne y ayant accès. Par exemple, pour l'utilisateur « paul » dont le mot de passe est « password123 », la ligne de code prendra la forme suivante :

paul:password123

Évidemment, il est fortement recommandé de générer des mots de passe longs, variant les caractères, chiffres et symboles, de manière aléatoire afin de garantir la sécurité du procédé.

Pour aller plus loin, découvrez comment évaluer votre site web en utilisant l'outil website grader ; ou découvrez les modèles de site web gratuits de HubSpot.

website grader

Publication originale le 4 décembre 2023, mise à jour le 11 décembre 2023

Sujet(s):

Performance web