Fichier .htaccess : qu'est-ce que c'est et que pouvez-vous en faire ?
Le fichier .htaccess est l'un des fichiers les plus puissants et les plus dangereux de votre serveur web. Il vous permet de configurer des redirections, de sécuriser votre site et de réécrire des URL. Mais une seule faute de frappe et votre site n'affiche plus qu'une Error 500.
Qu'est-ce que .htaccess ?
.htaccess (hypertext access) est un fichier de configuration pour les serveurs web Apache. Il se trouve à la racine de votre site web et influence la manière dont le serveur traite les requêtes.
Le point au début signifie qu'il s'agit d'un fichier caché. Dans votre client FTP, vous devrez peut-être activer « afficher les fichiers cachés ».
À quoi sert .htaccess ?
- Redirections : rediriger des URL vers d'autres emplacements
- Réécriture d'URL : des URL propres sans extension .php
- Sécurité : protéger des dossiers, bloquer des adresses IP
- Mise en cache : configurer la mise en cache du navigateur
- Forcer le HTTPS : rediriger HTTP vers HTTPS
- Pages d'erreur : configurer une page 404 personnalisée
Règles .htaccess courantes
Forcer le passage de HTTP à HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
www vers non-www (ou l'inverse)
# De www vers sans www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# De sans www vers www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Redirection spécifique
Redirect 301 /oude-pagina https://example.com/nieuwe-pagina
Page 404 personnalisée
ErrorDocument 404 /404.html
Protéger un dossier par mot de passe
AuthType Basic
AuthName "Beveiligd gebied"
AuthUserFile /pad/naar/.htpasswd
Require valid-user
Bloquer une adresse IP
Deny from 123.456.789.000
Mise en cache du navigateur
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
WordPress et .htaccess
WordPress utilise .htaccess pour les permaliens. Le contenu par défaut :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Ne modifiez rien entre BEGIN et END WordPress : ces lignes sont écrasées par WordPress.
Modifier .htaccess en toute sécurité
- Faites une sauvegarde : téléchargez le fichier actuel
- Modifiez en local : utilisez un bon éditeur de texte (pas Word)
- Envoyez et testez : chargez votre site immédiatement après l'envoi
- Une erreur ? Restaurez la sauvegarde : écrasez le fichier avec votre sauvegarde
Problèmes fréquents
Error 500 après une modification
Erreur de syntaxe dans votre .htaccess. Restaurez votre sauvegarde ou supprimez la modification récente.
Boucle de redirection
Votre redirection pointe vers une URL qui redirige à son tour. Vérifiez l'ordre de vos règles.
Les règles ne fonctionnent pas
Mod_rewrite n'est peut-être pas actif. Ou votre serveur tourne sous nginx (qui n'utilise pas .htaccess).
Attention : nginx n'utilise pas .htaccess
.htaccess ne fonctionne que sur les serveurs Apache. Nginx possède son propre système de configuration. Si vous êtes sur nginx, vous devez demander à l'administrateur du serveur d'effectuer les modifications.
Questions fréquentes
Puis-je avoir un .htaccess par dossier ?
Oui, chaque dossier peut avoir son propre .htaccess, qui prévaut sur celui du dossier parent.
Comment savoir si mon serveur est un serveur Apache ?
Consultez votre panneau d'hébergement ou demandez à votre hébergeur. Vous pouvez aussi regarder les en-têtes serveur de votre site.
.htaccess ralentit-il le site ?
Un peu. Apache doit lire le fichier à chaque requête. Pour les sites à fort trafic, la configuration du serveur est plus rapide.
Hébergement chez Theory7
Astuces .htaccess courantes
Forcer le passage de HTTP à HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Tous les visiteurs sont automatiquement redirigés vers la version sécurisée de votre site.
Ajouter ou supprimer le www
Ajouter (non-www vers www) :
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Supprimer (www vers non-www) :
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Pages d'erreur personnalisées
ErrorDocument 404 /404.html ErrorDocument 500 /500.html
Affichez votre propre page au lieu de l'erreur serveur standard.
Configurer la mise en cache du navigateur
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" </IfModule>
Les navigateurs conservent les fichiers plus longtemps, ce qui rend votre site plus rapide pour les visiteurs qui reviennent.
Bloquer le hotlinking
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
Empêchez d'autres sites de charger directement vos images en utilisant votre bande passante.
.htaccess et WordPress
WordPress utilise .htaccess pour les permaliens. Voici le contenu par défaut :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Ne modifiez pas ce bloc manuellement : WordPress le gère lui-même. Ajoutez vos propres règles au-dessus ou en dessous.
Modifier .htaccess en toute sécurité
- Faites d'abord une sauvegarde de votre .htaccess actuel
- Testez les modifications en local ou dans un environnement de préproduction
- Envoyez et testez immédiatement : les erreurs de syntaxe rendent votre site inaccessible
- En cas de problème : restaurez la sauvegarde
Erreurs fréquentes
500 Internal Server Error
Erreur de syntaxe dans votre .htaccess. Vérifiez soigneusement les règles. Une seule faute de frappe suffit à tout casser.
Boucle de redirection
Vos règles renvoient les unes vers les autres. Recherchez des RewriteRules contradictoires.
Fichier invisible
.htaccess est un fichier caché (il commence par un point). Activez « afficher les fichiers cachés » dans votre client FTP.
Techniques .htaccess avancées
Améliorer la sécurité
Bloquez l'accès aux fichiers sensibles :
<FilesMatch "^(wp-config\.php|\.htaccess|readme\.html)$"> Order Allow,Deny Deny from all </FilesMatch>
Désactivez l'affichage du contenu des répertoires (directory browsing) :
Options -Indexes
Protégez votre site contre le clickjacking :
Header always set X-Frame-Options "SAMEORIGIN"
Optimisation des performances
Activer la compression :
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css AddOutputFilterByType DEFLATE application/javascript application/json </IfModule>
Réécrire des URL
Rediriger une ancienne URL vers une nouvelle :
Redirect 301 /oude-pagina https://example.com/nieuwe-pagina
Toutes les requêtes vers une page de maintenance (sauf votre IP) :
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !^/onderhoud\.html$
RewriteRule ^(.*)$ /onderhoud.html [R=302,L]
Alternatives à .htaccess
Nginx
Sur les serveurs Nginx, .htaccess ne fonctionne pas. Vous y utilisez la configuration dans nginx.conf ou des blocs server. De nombreuses règles sont similaires, mais avec une autre syntaxe.
Via des extensions
Certaines fonctions peuvent aussi être gérées avec des extensions WordPress, comme les redirections (extension Redirection) ou les en-têtes de sécurité (diverses extensions de sécurité).
.htaccess est un fichier de configuration puissant qui offre de nombreuses possibilités. Expérimentez avec prudence, faites des sauvegardes, et vous disposerez d'un outil flexible pour optimiser votre site web.
Le fichier .htaccess est l'un des fichiers de configuration les plus puissants d'un serveur web Apache. Avec quelques lignes de code, vous pouvez modifier en profondeur le comportement de votre site web, de la réécriture d'URL à la restriction d'accès, de la mise en cache à la sécurité.
Règles .htaccess courantes
Quelques règles pratiques que vous pouvez ajouter à votre .htaccess :
- Redirection de HTTP vers HTTPS pour une connexion sécurisée
- Bloquer l'accès à des adresses IP spécifiques
- Configurer la mise en cache du navigateur pour des temps de chargement plus courts
- Désactiver le listage des répertoires pour une meilleure sécurité
- Configurer des pages d'erreur 404 personnalisées
Prudence avec les modifications
Le fichier .htaccess est sensible : une petite faute de frappe peut mettre tout votre site web hors service. Faites donc toujours une sauvegarde avant d'apporter des modifications. Si votre site web ne fonctionne plus après une modification, vous pouvez restaurer le fichier de sauvegarde via FTP.
Testez toujours les modifications dans un environnement de préproduction ou sur un serveur de test avant de les mettre en ligne. Et documentez ce que vous ajoutez, afin de savoir plus tard pourquoi certaines règles sont là.
Alternative : NGINX
Notez que .htaccess ne fonctionne que sur les serveurs Apache. Si votre hébergement utilise NGINX, vous devez effectuer la configuration ailleurs. Demandez à votre hébergeur comment appliquer des paramètres similaires sur un serveur NGINX.
Le fichier .htaccess vous donne le contrôle de votre serveur web Apache. Des redirections aux en-têtes de cache, les possibilités sont infinies. Soyez prudent avec les modifications : une faute de frappe peut rendre votre site inaccessible. Testez toujours sur une copie et gardez une sauvegarde à portée de main. Avec un peu de pratique, .htaccess devient un outil indispensable dans votre boîte à outils de gestion de site web. Étudiez les possibilités et appliquez-les là où c'est nécessaire.
Avec .htaccess, vous déterminez la manière dont Apache sert votre site web. Des redirections simples aux règles de réécriture complexes, les possibilités sont immenses. Prenez le temps d'apprendre la syntaxe et expérimentez sur un serveur de test. Une configuration .htaccess solide rend votre site web plus rapide, plus sûr et plus facile à trouver. C'est une compétence que tout webmaster devrait maîtriser.
Chaque commande .htaccess que vous apprenez fait de vous un meilleur webmaster. Commencez par les bases et élargissez vos connaissances étape par étape. Redirections, en-têtes de cache, règles de sécurité : ce sont toutes des compétences précieuses. Documentez votre configuration afin de savoir plus tard pourquoi certaines règles sont là. Un fichier .htaccess bien entretenu est le signe d'une gestion de site web professionnelle.
Chez Theory7, nous utilisons des serveurs web LiteSpeed qui prennent en charge .htaccess. Besoin d'aide pour votre configuration ? Notre équipe de support vous aide volontiers.
Lancez-vous dès maintenant avec .htaccess.
Apprenez à maîtriser .htaccess dès aujourd'hui.
Aperçu des règles courantes du fichier htaccess
Le fichier htaccess offre d'innombrables possibilités pour configurer votre site web. Vous trouverez ci-dessous un aperçu pratique des règles les plus utilisées que vous pouvez appliquer dans votre fichier htaccess.
| Fonction | Règle du fichier htaccess | Usage |
|---|---|---|
| Redirection HTTP vers HTTPS | RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] | Imposer une connexion sécurisée |
| www vers non-www | RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] | Définir l'URL canonique |
| Page 404 personnalisée | ErrorDocument 404 /404.html | Afficher sa propre page d'erreur |
| Bloquer le listage des répertoires | Options -Indexes | Masquer le contenu des dossiers |
| Compression Gzip | AddOutputFilterByType DEFLATE text/html | Temps de chargement plus courts |
| Mise en cache du navigateur | ExpiresByType image/jpeg "access plus 1 year" | Mettre en cache les fichiers statiques |
| Bloquer une IP | Deny from 123.456.789.0 | Écarter le trafic indésirable |
| Protection contre le hotlinking | RewriteRule \.(jpg|png|gif)$ - [F] | Protéger les images |
Conseils pour modifier votre fichier htaccess en toute sécurité
Avant d'apporter des modifications à votre fichier htaccess, il est judicieux de toujours faire d'abord une sauvegarde. Une erreur dans le fichier htaccess peut rendre tout votre site web inaccessible. Testez de préférence les modifications d'abord dans un environnement de test avant de les appliquer à votre site web en production.
Le fichier htaccess est un fichier de configuration puissant, mais aussi fragile. Utilisez toujours la bonne syntaxe et vérifiez après chaque modification que votre site web fonctionne encore correctement. En cas de doute, le mieux est de confier la modification du fichier htaccess à une personne ayant de l'expérience technique.
Fichier htaccess : optimisation des performances
Le fichier htaccess est un outil puissant pour améliorer les performances de votre site web sans modifier les fichiers de configuration du serveur.
Configurer la mise en cache du navigateur
Avec le fichier htaccess, vous pouvez définir des en-têtes de mise en cache qui indiquent au navigateur combien de temps les fichiers peuvent être conservés en local. Les fichiers statiques comme les images, le CSS et le JavaScript changent rarement et peuvent être mis en cache pendant des mois. Les fichiers HTML changent plus souvent et reçoivent une durée de cache plus courte. En configurant correctement la mise en cache du navigateur, les visiteurs qui reviennent chargent votre site web nettement plus vite, car ils n'ont pas besoin de télécharger à nouveau de nombreux fichiers.
Activer la compression GZIP
La compression GZIP réduit de 60 à 80 % la taille des fichiers envoyés au navigateur. Cela diminue la quantité de données transmises sur le réseau et accélère nettement le temps de chargement. Via le fichier htaccess, vous activez la compression pour les fichiers texte comme HTML, CSS, JavaScript, XML et JSON. Les fichiers binaires comme les images et les vidéos ne profitent pas de la compression GZIP, car ils sont déjà compressés.
Aperçu des paramètres de performance
| Paramètre | Effet | Durée de cache | Type de fichier |
|---|---|---|---|
| Mise en cache des images | Visites répétées plus rapides | 1 an | JPG, PNG, WebP, SVG |
| Mise en cache CSS/JS | Moins de téléchargements | 1 mois | CSS, JavaScript |
| Mise en cache HTML | Contenu plus frais | De 1 heure à 1 jour | HTML |
| Compression GZIP | De 60 à 80 % plus léger | Sans objet | Fichiers texte |
| Désactiver les ETags | Moins de requêtes | Sans objet | Tous les fichiers |
Fichier htaccess : erreurs fréquentes et solutions
Une erreur dans votre fichier htaccess peut rendre tout votre site web inaccessible. Connaissez les erreurs fréquentes et la manière de les éviter.
500 Internal Server Error
L'erreur la plus fréquente après la modification d'un fichier htaccess est la 500 Internal Server Error. Elle signifie que le fichier contient une erreur de syntaxe. Faites toujours une sauvegarde de votre fichier htaccess d'origine avant d'apporter des modifications. Si vous obtenez une erreur 500, restaurez le fichier de sauvegarde via FTP. Ajoutez les modifications étape par étape et vérifiez après chaque modification que le site web fonctionne encore correctement.
Éviter les boucles de redirection
Des redirections mal configurées peuvent provoquer des boucles infinies dans lesquelles le navigateur est redirigé sans fin. Il en résulte un message d'erreur indiquant que la page a été redirigée trop de fois. Vérifiez que vos règles de redirection ne contiennent pas de renvois circulaires. Utilisez des conditions RewriteCond pour éviter que des règles s'appliquent à des URL qui remplissent déjà les critères souhaités.
Lisez aussi notre article détaillé htaccess, le guide complet pour découvrir des configurations encore plus avancées.
Fichier htaccess : questions fréquentes
Lorsque l'on travaille avec le fichier htaccess, les mêmes questions reviennent souvent. Nous répondons ci-dessous aux questions les plus posées avec des explications claires.
Où trouver le fichier htaccess ?
Le fichier htaccess se trouve dans le répertoire racine de votre site web, le même dossier que votre fichier index.php ou index.html. Comme le nom du fichier commence par un point, il s'agit d'un fichier caché qui, par défaut, n'est pas visible dans la plupart des gestionnaires de fichiers. Dans FileZilla, vous activez l'affichage des fichiers cachés via Serveur, Forcer l'affichage des fichiers cachés. Dans le gestionnaire de fichiers de DirectAdmin, le fichier est visible par défaut.
Puis-je avoir plusieurs fichiers htaccess ?
Oui, vous pouvez placer un fichier htaccess dans chaque répertoire de votre site web. Le fichier htaccess d'un sous-dossier prévaut sur les règles du fichier htaccess du dossier parent pour ce répertoire précis. C'est pratique pour appliquer des règles spécifiques à certaines sections de votre site web, comme une protection par mot de passe pour un dossier d'administration ou d'autres règles de mise en cache pour un répertoire de médias.
Questions fréquentes
- Est-il sûr de modifier le fichier htaccess ? Oui, à condition de faire une sauvegarde avant d'apporter des modifications. Une erreur peut rendre votre site web inaccessible, mais il est facile d'y remédier en remettant en place le fichier de sauvegarde.
- Le fichier htaccess fonctionne-t-il sur tous les serveurs ? Le fichier htaccess ne fonctionne que sur les serveurs web Apache. Nginx et LiteSpeed utilisent un autre système de configuration, bien que LiteSpeed offre une compatibilité htaccess limitée.
- Comment tester mes règles htaccess ? Il existe des testeurs htaccess en ligne dans lesquels vous pouvez saisir et tester vos règles sans les placer sur votre serveur en production. Testez toujours dans un environnement de préproduction avant d'appliquer des modifications en production.
- Puis-je utiliser htaccess pour les paramètres PHP ? Oui, vous pouvez définir divers paramètres PHP via htaccess, comme les limites de mémoire, les tailles d'envoi de fichiers et les niveaux de rapport d'erreurs.
Fichier htaccess : résumé et configurations essentielles
Le fichier htaccess est un outil puissant mais simple pour configurer votre site web. Nous résumons ici les configurations essentielles que tout site web devrait avoir.
Les cinq configurations indispensables
Tout site web devrait avoir au minimum ces cinq configurations dans son fichier htaccess. Premièrement : une redirection de HTTP vers HTTPS pour des connexions sécurisées. Deuxièmement : des en-têtes de mise en cache du navigateur qui améliorent la vitesse de chargement pour les visiteurs qui reviennent. Troisièmement : la compression GZIP, qui réduit la taille des fichiers de 60 à 80 %. Quatrièmement : la désactivation du listage des répertoires, afin que les visiteurs ne puissent pas parcourir vos dossiers. Cinquièmement : la protection des fichiers sensibles en bloquant l'accès direct.
Entretien et documentation
Traitez votre fichier htaccess comme un document de configuration important. Ajoutez à chaque règle ou bloc un commentaire qui décrit ce que fait la règle et quand elle a été ajoutée. Faites une sauvegarde avant d'apporter des modifications. Testez chaque modification immédiatement dans votre navigateur. Conservez un historique des versions afin de pouvoir revenir à une configuration antérieure en cas de problème. Avec cette discipline, votre fichier htaccess reste clair, compréhensible et facile à maintenir sur le long terme.
Fichier htaccess : optimisation pour des CMS spécifiques
Le fichier htaccess nécessite des configurations spécifiques selon le CMS utilisé. Pour WordPress, le fichier htaccess par défaut contient les règles de réécriture des permaliens, mais vous pouvez le compléter avec des en-têtes de mise en cache et des règles de sécurité. Pour Joomla, les règles d'URL SEF standard sont déjà incluses, mais des règles supplémentaires pour bloquer les vecteurs d'attaque courants sont recommandées. Pour une application PHP sur mesure, vous écrivez vous-même toutes les règles de routage d'URL dans le fichier htaccess. Veillez à ce que les règles propres à votre CMS n'entrent pas en conflit avec vos propres règles personnalisées en déterminant soigneusement leur ordre.
Erreurs fréquentes dans le fichier htaccess
Évitez les erreurs les plus fréquentes lors de la modification de votre fichier htaccess. N'oubliez jamais de faire une sauvegarde avant d'appliquer des modifications. Vérifiez que RewriteEngine On est activé avant d'ajouter des règles de réécriture. Évitez les boucles de redirection infinies en formulant soigneusement vos conditions. Testez chaque modification immédiatement après sa mise en œuvre et vérifiez à la fois le fonctionnement et les performances de votre site web.