Le fichier .htaccess : votre couteau suisse pour configurer Apache
Si votre site tourne sur un serveur Apache (ce qui est le cas d'une grande partie du web), le fichier .htaccess est votre meilleur allié. C'est un petit fichier texte, souvent caché, qui vous donne un contrôle fin sur le comportement de votre serveur sans toucher à la configuration globale.
Redirections, sécurité, performance, réécriture d'URL : tout passe par là. Mais attention, une erreur de syntaxe et votre site peut devenir inaccessible. Alors on va y aller méthodiquement.
C'est quoi, exactement ?
Le fichier .htaccess (pour « hypertext access ») est un fichier de configuration Apache qui s'applique au répertoire dans lequel il est placé et à tous ses sous-répertoires. Il est lu à chaque requête HTTP, ce qui permet des ajustements en temps réel sans redémarrer le serveur.
On le trouve généralement à la racine de votre site, mais il peut aussi être placé dans des sous-dossiers pour des configurations spécifiques.
Les usages les plus courants
Redirections 301
Vous avez changé l'URL d'une page ? La redirection 301 dit aux moteurs de recherche (et aux visiteurs) que la page a déménagé de façon permanente. Indispensable pour préserver votre SEO lors d'une refonte :
Redirect 301 /ancienne-page.html /nouvelle-page.html
Forcer le HTTPS
Vous avez installé votre certificat SSL ? Il faut maintenant forcer toutes les connexions en HTTPS :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Réécriture d'URL (mod_rewrite)
Transformer des URL longues et techniques en URL courtes et lisibles c'est la spécialité de mod_rewrite. C'est d'ailleurs ce que WordPress utilise pour ses permaliens.
Protection par mot de passe
Besoin de restreindre l'accès à un dossier pendant le développement ? Le .htaccess peut gérer l'authentification basique :
AuthType Basic
AuthName "Zone protégée"
AuthUserFile /chemin/vers/.htpasswd
Require valid-user
Le .htaccess dans WordPress
WordPress génère automatiquement un fichier .htaccess pour gérer les permaliens. Il ressemble à ça :
# 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
Des plugins comme Wordfence ou WP Rocket ajoutent aussi leurs propres directives dans ce fichier. D'où l'importance de comprendre ce qu'il contient.
Les règles d'or
- Toujours sauvegarder avant de modifier une erreur de syntaxe peut rendre votre site inaccessible (erreur 500)
- Commenter chaque directive vous (ou le prochain développeur) vous remercierez dans 6 mois
- Tester après chaque changement vérifiez que le site fonctionne, que les redirections marchent, que rien n'est cassé
- Consulter les logs Apache en cas de problème ils contiennent les détails de l'erreur
Quand ne pas utiliser .htaccess
Si vous avez accès à la configuration principale d'Apache (httpd.conf), préférez y placer vos directives. Le .htaccess est lu à chaque requête, ce qui peut impacter les performances sur des sites très fréquentés. La configuration principale, elle, n'est lue qu'au démarrage du serveur.
Et si vous migrez vers Nginx ? Le .htaccess n'existe tout simplement pas sur ce serveur. Il faudra traduire vos règles dans la syntaxe Nginx.
Besoin d'un accompagnement ?
Nos experts sont disponibles pour vous aider à concrétiser votre projet digital.
Obtenir un devis