Table des matières:
Pourquoi le fichier .htaccess est crucial pour la sécurité WordPress ?
Le fichier .htaccess est un fichier de configuration puissant pour les serveurs Apache. Il permet de définir des règles de sécurité, de réécriture d’URL et de protection contre les attaques. Mal utilisé, il peut fragiliser votre site ; bien optimisé, il devient un bouclier efficace. Dans cet article, nous allons voir comment optimiser le fichier .htaccess pour la sécurité WordPress, étape par étape.
Comprendre le fichier .htaccess et son fonctionnement
Le fichier .htaccess (hypertext access) est un fichier invisible placé à la racine de votre installation WordPress. Il agit localement, sans nécessiter de redémarrage du serveur. Chaque fois qu’une requête est faite, le serveur lit ce fichier et applique les directives.
Il est essentiel de faire une sauvegarde du fichier original avant toute modification. Une erreur peut rendre votre site inaccessible.
Où se trouve le fichier .htaccess ?
Généralement à la racine de votre site, dans le même dossier que wp-config.php. Vous pouvez y accéder via FTP ou le gestionnaire de fichiers de votre hébergement. S’il n’existe pas, vous pouvez en créer un avec un éditeur de texte.
Les règles essentielles pour sécuriser WordPress via .htaccess
Voici les directives les plus importantes à ajouter ou vérifier dans votre fichier .htaccess pour renforcer la sécurité.
1. Protéger le dossier wp-admin
Limiter l’accès à l’interface d’administration est une priorité. Vous pouvez restreindre l’accès par IP ou par authentification supplémentaire.
# Protéger wp-admin
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from votre_ip
</Files>
Remplacez votre_ip par votre adresse IP. Attention, si votre IP change, vous serez bloqué.
2. Bloquer l’accès au fichier wp-config.php
Ce fichier contient les informations sensibles de votre base de données. Il doit être inaccessible depuis le web.
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
3. Désactiver l’affichage des listes de répertoires
Par défaut, si aucun fichier index n’est présent, le serveur affiche la liste des fichiers. Cela peut exposer des informations.
Options -Indexes
4. Protéger le dossier wp-content/uploads
Les téléchargements doivent être sécurisés pour empêcher l’exécution de scripts PHP.
<Directory /chemin/wp-content/uploads>
php_flag engine off
</Directory>
5. Bloquer les requêtes malveillantes
Vous pouvez bloquer certaines chaînes de caractères couramment utilisées dans les attaques.
RewriteCond %{QUERY_STRING} (eval(||base64_encode) [NC]
RewriteRule .* - [F]
6. Activer le pare-feu applicatif (WAF) de base
Utilisez des règles pour bloquer les bots et les scanners.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) [NC]
RewriteRule .* - [F]
Erreurs fréquentes à éviter lors de l’optimisation
- Ne pas tester les règles : une erreur peut bloquer tout le site. Testez sur un environnement de staging.
- Confondre les directives Apache et Nginx : .htaccess ne fonctionne que sur Apache. Si votre serveur utilise Nginx, cherchez une autre méthode.
- Oublier de sauvegarder : toujours garder une copie du fichier original.
- Bloquer accidentellement son propre accès : si vous filtrez par IP, assurez-vous d’avoir une IP fixe.
Comparaison : sécurité via .htaccess vs plugins de sécurité
| Méthode | Avantages | Inconvénients |
|---|---|---|
| .htaccess | Léger, sans impact sur les performances, contrôle fin | Nécessite des connaissances techniques, risque d’erreur |
| Plugin (Wordfence, Sucuri) | Interface conviviale, mises à jour automatiques | Peut ralentir le site, dépendance au plugin |
Une combinaison des deux est souvent idéale : utilisez .htaccess pour les règles de base et un plugin pour la surveillance.
Exemple complet d’un fichier .htaccess optimisé
Voici un modèle que vous pouvez adapter :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Sécurité
Options -Indexes
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from votre_ip
</Files>
# Bloquer l'accès aux fichiers sensibles
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Protection contre les injections
RewriteCond %{QUERY_STRING} (eval(||base64_encode) [NC]
RewriteRule .* - [F]
N’oubliez pas de remplacer votre_ip par la vôtre.
Comment tester vos modifications en toute sécurité
Avant de mettre en production, créez un fichier .htaccess de test dans un sous-dossier. Utilisez des outils en ligne comme htaccess tester pour valider la syntaxe. Si vous perdez l’accès, connectez-vous en FTP et renommez le fichier.
Questions fréquentes sur l’optimisation du fichier .htaccess
Le fichier .htaccess fonctionne-t-il avec Nginx ?
Non, .htaccess est spécifique à Apache. Pour Nginx, les règles se placent dans le fichier de configuration du serveur (nginx.conf).
Que faire si mon site devient inaccessible après une modification ?
Connectez-vous en FTP, localisez le fichier .htaccess et renommez-le en .htaccess_old. Le site devrait fonctionner à nouveau. Ensuite, corrigez les erreurs.
Faut-il ajouter toutes les règles de sécurité manuellement ?
Non, commencez par les règles de base (protection wp-config, désactivation de l’indexation). Ensuite, ajoutez progressivement selon vos besoins.
Les règles .htaccess ralentissent-elles le site ?
L’impact est négligeable car le fichier est mis en cache par le serveur. Cependant, trop de règles complexes peuvent légèrement augmenter le temps de traitement.
Puis-je utiliser .htaccess pour forcer HTTPS ?
Oui, ajoutez : RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Comment protéger un dossier spécifique avec un mot de passe via .htaccess ?
Créez un fichier .htpasswd avec les identifiants cryptés, puis ajoutez dans le .htaccess du dossier : AuthType Basic AuthName « Restreint » AuthUserFile /chemin/.htpasswd Require valid-user
Recommandations pour une sécurité WordPress renforcée
L’optimisation du fichier .htaccess pour la sécurité WordPress est une étape importante, mais elle ne doit pas être la seule. Combinez-la avec :
- Des mises à jour régulières de WordPress, thèmes et plugins.
- L’utilisation de mots de passe forts et d’une authentification à deux facteurs.
- Un plugin de sécurité fiable pour la surveillance et les backups.
- Un certificat SSL pour chiffrer les échanges.
En adoptant ces bonnes pratiques, vous réduisez considérablement les risques d’attaques. N’oubliez pas de tester chaque modification et de conserver une copie de sauvegarde de votre fichier .htaccess. Votre site vous en remerciera.
Photo by Joshi Milestoner on Unsplash

Super article ! Est-ce que ces règles fonctionnent aussi avec Nginx ?
Non, .htaccess est spécifique à Apache. Pour Nginx, il faut modifier le fichier de configuration du serveur (nginx.conf). Les principes de sécurité sont similaires mais la syntaxe diffère.
J’ai appliqué la règle pour bloquer l’affichage des répertoires, mais je vois toujours la liste de mes fichiers dans wp-content/uploads. Pourquoi ?
La directive Options -Indexes doit être placée en dehors de toute balise ou pour s’appliquer globalement. Sinon, vérifiez que votre hébergement autorise cette directive. Certains hébergeurs la désactivent.
Merci pour ce guide ! J’ai ajouté la règle pour protéger wp-config.php, mais depuis mon site affiche une erreur 500. Une idée ?
Bonjour, une erreur 500 peut venir d’une faute de syntaxe. Vérifiez qu’il n’y a pas d’espace ou de caractère superflu dans la règle. Si le problème persiste, restaurez votre sauvegarde et testez les modifications une par une.
Très utile, merci ! Une question : est-il possible de limiter l’accès à wp-admin à plusieurs IP ?
Oui, il suffit d’ajouter plusieurs lignes ‘Allow from’ avec chaque IP. Exemple :
Allow from 192.168.1.1
Allow from 10.0.0.1
Attention à bien ordonner les règles pour ne pas bloquer accidentellement.