Un .htaccess fichier ou un fichier de configuration distribué est un fichier robuste utilisé pour contrôler et gérer les configurations d'un site web. Toutes les modifications de configuration sont effectuées par répertoire afin de garantir que les fichiers de configuration principaux du serveur ne soient pas perturbés.
Quand privilégier l'utilisation du fichier .htaccess
Que vous souhaitiez charger des pages d'erreur ou implémenter une sécurité par mot de passe, un .htaccess a une liste d'utilisations. Certains des exemples les plus courants incluent :
-
Ajouter des redirections pour une URL spécifique ou une liste d'URLs.
-
Activer la protection par mot de passe sur certains répertoires d'un serveur.
-
Charger des pages d'erreur personnalisées.
-
Forcer un site à utiliser HTTPS au lieu de HTTP.
-
Bloquer des adresses IP ou des domaines ciblés.
Dans ce guide, nous allons vous guider à travers les étapes pour activer, créer et utiliser le fichier .htaccess.
Prérequis
Pour suivre ce tutoriel, vous devez disposer de ce qui suit :
-
La dernière version d'Ubuntu est installée sur votre système.
-
Le serveur web Apache doit être installé sur votre serveur Ubuntu.
-
Un hôte virtuel Apache configuré pour votre domaine.
-
Les utilisateurs du système doivent disposer de privilèges sudo.
-
Un hôte virtuel sécurisé avec SSL.
-
Suivez Sécuriser Apache avec Let’s Encrypt sur Ubuntu 18.04 si vous configurez et sécurisez Apache en utilisant votre domaine personnalisé.
-
Alternativement, vous pouvez Créer un certificat SSL auto-signé pour Apache sous Ubuntu 20.04 si vous prévoyez d'utiliser Apache pour des besoins de test.
-
|
Remarque : Il existe de nombreux fournisseurs de domaines auprès desquels vous pouvez envisager d'acheter des domaines personnalisés en ligne. Namecheap, Freenom, et Bluehost, pour n'en nommer que quelques-uns, sont bien connus pour leur service exceptionnel. |
Une fois la configuration initiale terminée, connectez-vous à votre serveur en tant qu'utilisateur sudo, et commençons.
Étape 1 — Activer le fichier .htaccess
Par défaut, le fichier .htaccess est désactivé. Nous devons d'abord modifier la configuration d'Apache et activer le fichier .htaccess.
Ouvrez le fichier d'hôte virtuel apache2/sites-available/your_domain.conf en utilisant nano ou tout autre éditeur de texte de votre choix :
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
En supposant que vous soyez prêt avec la configuration abordée dans le serveur web Apache guide, vous trouverez les détails de configuration suivants :
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Ensuite, incluez le contenu Directory suivant au sein du bloc VirtualHost :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
Dans le bloc de code ci-dessus, la ligne AllowOverride All sous la section Directory est la plus importante de toutes. Cette section permet l'utilisation de .htaccess fichiers.
Après cela, enregistrez votre travail et fermez le fichier. Si vous utilisez l'éditeur de texte nano, utilisez le raccourci CTRL + X, Y, et ENTRÉE pour fermer le fichier.
Vérifiez la configuration avant de redémarrer le serveur web :
|
1 |
$ sudo apache2ctl configtest |
Vous verrez Syntax OK comme sortie si tout est en place. Maintenant, redémarrez le serveur pour ajouter votre politique de mot de passe :
|
1 |
$ sudo systemctl restart apache2 |
Une fois que les paramètres du fichier .htaccess sont activés, il est temps de créer un nouveau fichier.
Étape 2 — Créer un fichier .htaccess
Créer un fichier .htaccess est simple. Vous devez naviguer vers le répertoire racine web, c'est-à-dire la source, pour localiser le fichier .htaccess afin de vous assurer que les modifications de configuration sont correctement exécutées.
|
Note : Soyez prudent lors de la localisation du fichier .htaccess . Une erreur subtile dans la configuration pourrait affecter négativement son répertoire et les répertoires suivants. Par exemple, si vous visez plusieurs sites web sur le même serveur Apache, placez votre fichier .htaccess dans le répertoire racine web associé au site web. |
Si vous avez suivi le prérequis mentionné ci-dessus, vous obtiendrez le répertoire racine web à l'emplacement /var/www/my_domain/.htaccess. Ensuite, créez un fichier .htaccess pour votre site web en utilisant :
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
Une fois que notre fichier .htaccess est prêt, découvrons certains de ses cas d'utilisation.
Étape 3 — Utilisations courantes du fichier .htaccess

L'utilisation d'un fichier .htaccess sur votre site présente plusieurs avantages. Examinons chacun d'eux en détail :
-
Redirection d'URL
La redirection d'URL, également appelée transfert d'URL, est une fonction de serveur web utilisée pour rediriger le visiteur d'un domaine vers une autre URL. Vous pouvez utiliser .htaccess pour vos besoins de redirection d'URL. Ajoutez ce qui suit dans votre fichier .htaccess pour mapper l'URL source à l'URL cible :
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
Créer des pages d'erreur personnalisées
Un aspect utile du fichier .htaccess est de créer une page d'erreur personnalisée. Généralement, lorsqu'un utilisateur rencontre une page qui n'existe pas sur le site web, un message d'erreur s'affiche à l'écran. Certains des codes d'erreur HTTP courants incluent :
-
400 Bad Request
-
401 Non autorisé
-
403 Interdit
-
404 Non trouvé
-
500 Erreur interne du serveur
-
502 Mauvaise passerelle
-
503 Service indisponible
Contrairement à l'erreur de page par défaut du serveur « Page non trouvée », utilisez le fichier .htaccess pour offrir à vos utilisateurs une expérience de navigation améliorée et conviviale.
-
Configurer l'authentification de sécurité
En utilisant le fichier .htaccess , vous pouvez également configurer l'authentification de sécurité. Pour cela, vous devez créer un fichier .htpasswd pour authentifier les utilisateurs.
Utilisez la commande htpasswd pour créer un fichier de mots de passe à des fins de sécurité. Apache utilisera ce fichier de mots de passe pour authentifier les utilisateurs vérifiés. Naviguez vers le répertoire /etc/apache2 et créez un fichier confidentiel nommé .htpasswd.
Pour créer le fichier .htpasswd requis, utilisez l'option -c option la première fois que vous utilisez cet utilitaire de sécurité par mot de passe. Ensuite, spécifiez le nom d'utilisateur à la fin de la commande pour lister une nouvelle entrée dans le fichier. Après cela, remplacez le nom d'utilisateur nick (utilisé dans ce tutoriel) par votre nom d'utilisateur :
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
Ensuite, il vous sera demandé de fournir et de vérifier le mot de passe de l’utilisateur.
Continuez à lire ce tutoriel pour en savoir plus sur la configuration et le paramétrage de l'authentification par mot de passe avec Apache sur Ubuntu 20.04.
-
Ajouter des types MIME
La classification des fichiers utilisés sur Internet se fait sans effort grâce aux Multi-Purpose Internet Mail Extensions (MIME). Dans plusieurs scénarios où un site web ne parvient pas à distribuer un fichier spécifique, l'ajout d'extensions fait l'affaire. Utilisez le code suivant pour ajouter des types Multipurpose Internet Mail Extensions (MIME) à votre serveur Apache dans le fichier .htaccess :
|
1 |
AddType audio/mp4a-latm .m4a |
|
Note : Dans notre guide, nous utilisons un type MIME de fichier audio. Remplacez l'application et l'extension de fichier par votre type MIME cible. De plus, assurez-vous que la configuration de l'hôte virtuel et .htaccess le répertoire d'emplacement du fichier soient en mesure d'utiliser la directive AddType . Sinon, vous obtiendrez une Erreur interne du serveur 500. |
-
Server Side Includes (SSI)
Les SSI sont des directives qui alimentent une page HTML en contenu dynamique. Elles sont utilisées pour mettre à jour un grand nombre de pages avec des données spécifiques sans avoir besoin de mettre à jour chaque page explicitement.
Dans les fichiers HTML, les Server Side Includes (SSI) sont désactivés par défaut. Ajoutez le code suivant à votre fichier .htaccess pour activer les SSI :
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
Les lignes ci-dessus valident d'abord les fichiers .shtml . La confirmation est ensuite envoyée au fichier .htaccess tout en permettant au serveur d'analyser tous les fichiers .shtml .
Alternativement, vous pouvez utiliser XBitHack pour analyser plusieurs contenus .html au lieu de renommer les extensions .shtml une par une. Ajoutez la ligne suivante au fichier .htaccess pour utiliser XbitHAck et demander à Apache de vérifier tous les fichiers .html :
|
1 |
XBitHack on |
Ensuite, vous devez modifier les autorisations pour permettre à la page d'utiliser XBitHack. Utilisez la commande chmod suivante pour ce faire :
|
1 |
$ chmod +x pagename.html |
-
Gérer les adresses IP
Parfois, vous pouvez chercher à bloquer une IP ou une plage d'adresses IP visitant votre site pour des raisons de sécurité. Insérez les lignes de code suivantes dans votre fichier .htaccess pour restreindre l'IP ciblée :
|
1 |
Order Deny, Allow Deny from A.A.A.A (où A.A.A.A est une spécifique IPv4 Adresse) |
Utilisez une ligne distincte pour bloquer plus d'une IP :
|
1 |
Order Deny Allow Deny from A.A.A.A (où A.A.A.A est une spécifique IPv4 Adresse) Deny from B.B.B.B (où B.B.B.B est une spécifique IPv4 Adresse) |
De plus, vous pouvez empêcher des domaines d'accéder à votre site web. Restreignez un domaine spécifique en ajoutant la ligne de code suivante au fichier .htaccess :
Order Deny, Allow Deny from www.blockdomain.com (où www.blockdomain.com est un domaine spécifique)
Inconvénients de l'utilisation de .htaccess
L'ajout d'un fichier
.htaccess est indéniablement une excellente initiative pour configurer votre site web et le rendre convivial. Cependant, toute modification apportée aux paramètres de configuration s'accompagne d'autres inconvénients. Voyons quelques raisons convaincantes pour lesquelles vous ne devez pas utiliser le fichier
.htaccess :
i. Perte de performance : Chaque fois qu'un serveur analyse un répertoire de pages et son fichier .htaccess , la page se charge. Par conséquent, la perte de vitesse et de performance devient une préoccupation majeure.
ii. Sécurité : L'accès aux fichiers .htaccess donne un contrôle total sur la configuration du serveur. Cela signifie que tout utilisateur non autorisé qui accède au fichier .htaccess l’accès au fichier .htaccess, ce qui à son tour entraîne de potentiels risques de sécurité.
iii. Accessibilité: Les fichiers .htaccess doivent être manipulés avec le plus grand soin et la plus grande attention. S’il y a des erreurs dans le fichier .htaccess, cela peut rendre l’ensemble du site inaccessible.
Conclusion
Dans ce guide, nous avons obtenu une idée complète de l’activation, de la création et de l’utilisation d’un fichier .htaccess. Nous avons discuté des cas d’utilisation où et quand le fichier .htaccess doit être utilisé. Tirez parti des fichiers .htaccess pour sécuriser votre site web et le protéger contre les attaques. Cependant, l’utilisation de ce fichier de configuration présente plusieurs pièges qui ne doivent pas être ignorés. En résumé, utilisez les fichiers .htaccess en fonction de l’utilisation de votre serveur et des besoins d’accès de l’utilisateur.
De plus, vous trouverez d’autres tutoriels sur les réseaux sur notre blog:
-
Configuration de l’authentification HTTP de base avec Nginx sur Ubuntu 20.04
-
Proxy HTTP Nginx, équilibrage de charge, mise en mémoire tampon et mise en cache : un aperçu
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.