15 extraits .htaccess utiles pour votre site WordPress
Avoir un Fichier .htaccess bien configuré est crucial si vous voulez augmenter la sécurité et réduire les vulnérabilités sur votre site WordPress. Habituellement, l’objectif principal de créer un fichier .htaccess personnalisé empêche le piratage de votre site, mais constitue également un excellent moyen de gérer les redirections et les tâches liées au cache.
.htaccess est un fichier de configuration utilisé sur les serveurs Web Apache. La plupart des sites WordPress exécuter sur un serveur Apache, bien qu'une petite partie soit propulsé par Nginx. Dans cet article, vous pouvez trouver un collection d'extraits de code .htaccess, vous pouvez utiliser la plupart pour sécuriser votre site Web, tandis que le reste met en œuvre d'autres fonctionnalités utiles.
N'oublie pas de sauvegarder le fichier .htaccess avant de le modifier afin que vous puissiez toujours revenir à la version précédente si quelque chose ne va pas.
Et, si vous préférez ne pas toucher aux fichiers de configuration, je vous recommande le BulletProof Sécurité plugin qui est le plus fiable (et probablement le plus ancien) plugin de sécurité gratuit .htaccess sur le marché.
Créez le WP .htaccess par défaut
.htaccess fonctionne sur un par répertoire ce qui signifie que chaque répertoire peut avoir son propre fichier .htaccess. Il peut facilement arriver que votre site WordPress n'a pas encore de fichier .htaccess. Si vous ne trouvez pas de fichier .htaccess dans votre répertoire racine créer un fichier texte vide et le nommer à .htaccess
.
Ci-dessous, vous pouvez trouver le .htaccess par défaut WordPress utilise. Chaque fois que vous avez besoin de ce code, vous pouvez le rechercher rapidement dans le Codex WordPress. Notez qu'il existe un .htaccess différent pour WP Multisite.
# COMMENCE WordPressRewriteEngine sur RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # FIN WordPress
Les lignes commençant par #
sont des commentaires. N'éditez rien entre les lignes # COMMENCE WordPress
et # FIN WordPress
. Ajoutez vos règles personnalisées .htaccess en dessous de ces règles par défaut.
Tous les extraits de code que vous pouvez trouver dans cet article aller au fichier .htaccess de base trouvé dans votre répertoire racine.
1. Refuser l'accès à tous les fichiers .htaccess
Le code ci-dessous refuse l'accès à tous les fichiers .htaccess que vous avez installés dans votre WordPress. De cette façon, vous pouvez empêcher les gens de voir votre configurations de serveur Web.
# Refuse l'accès à tous les fichiers .htaccessOrdre Autoriser, Refuser Refuser de tout Satisfaire à tous
2. Protégez votre configuration WP
le wp-config.php
le fichier contient toutes vos configurations WP, y compris votre identifiant de base de données et votre mot de passe. Vous pouvez le nier de tout le monde ou donner la permission aux administrateurs d'y accéder.
Si vous choisissez ce dernier commenter la # Autoriser depuis xx.xx.xx.xxx
ligne (supprimer #
dès le début de la ligne) et insérez l'adresse IP de l'administrateur au lieu de xx.xx.xx.xxx
.
# Protège wp-configOrdre Autoriser, Refuser # Autoriser à partir de xx.xx.xx.xxx # Autoriser à partir de yy.yy.yy.yyy Refuser de tout
3. Empêcher les attaques XML-RPC DDoS
WordPress prend en charge XML-RPC par défaut, qui est un interface qui fait de la publication à distance possible. Cependant, même s’il s’agit d’une fonctionnalité intéressante, c’est également l’une des plus grandes vulnérabilités en matière de sécurité de WP, en tant que pirate informatique. l'exploiter pour les attaques DDoS.
Si vous ne voulez pas utiliser cette fonctionnalité, mieux vaut simplement le désactiver. Juste comme avant, vous pouvez ajouter des exceptions en commentant la # Autoriser depuis xx.xx.xx.xxx
en ligne et en ajoutant les adresses IP de votre (vos) administrateur (s).
# Protège XML-RPC, empêche les attaques DDoSOrdre Refuser, Autoriser # Autoriser depuis xx.xx.xx.xxx # Autoriser depuis yy.yy.yy.yyy Refuser de tout
4. Protégez votre zone d'administration
C'est aussi une bonne idée de protéger la zone d'administration en donnant accès uniquement aux administrateurs. Ici, n'oubliez pas de ajouter au moins un “Permettre” exception sinon vous ne pourrez pas accéder à votre administrateur du tout.
# Protège la zone d'administration par IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "Contrôle d'accès administrateur WordPress" AuthType BasicOrdre Refuser, Autoriser Refuser de tous Autoriser depuis xx.xx.xx.xxx Autoriser depuis yy.yy.yy.yyy
5. Empêcher la liste de répertoires
La plupart des sites WordPress ne désactivent pas la liste des répertoires, ce qui signifie que tout le monde peut parcourir leurs dossiers et fichiers, y compris les téléchargements de médias et les fichiers de plug-in. Inutile de dire qu'il s'agit d'une vulnérabilité de sécurité énorme.
Ci-dessous, vous pouvez voir comment un liste typique de répertoire WordPress ressemble à.
Heureusement, vous avez juste besoin une ligne de code pour bloquer cette fonctionnalité. Cet extrait de code sera renvoyer un message d'erreur 403 à quiconque veut accéder à vos répertoires.
# Empêche la liste des répertoires Options -Indexes
6. Empêcher l'énumération des noms d'utilisateur
Si les permaliens WP sont activés, il est assez facile de énumérer les noms d'utilisateurs en utilisant les archives de l'auteur. Les noms d'utilisateur révélés (y compris le nom d'utilisateur de l'administrateur) peuvent ensuite être utilisés dans attaques par force brute.
Insérez le code ci-dessous dans votre fichier .htaccess pour empêcher l'énumération du nom d'utilisateur.
# Empêche l'énumération du nom d'utilisateur RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Bloquer les spammeurs et les robots
Parfois, vous voudrez peut-être restreindre l'accès de certaines adresses IP. Cet extrait de code constitue un moyen simple de bloquer les spammeurs et les robots que vous connaissez déjà..
# Bloque les spammeurs et les robotsOrdre Autoriser, Refuser Refuser de xx.xx.xx.xxx Refuser de yy.yy.yy.yyy Autoriser de tous
8. Empêcher le hotlinking d'image
Bien que pas une menace pour la sécurité, hotlinking d'image est toujours une chose ennuyante. Les gens ne font pas que utilisez vos images sans votre permission mais ils le font même à vos frais. Avec ces quelques lignes de code, vous pouvez protéger votre site des liens hypertexte entre images.
# Empêche les liens d’image RewriteEngine sur RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.?? Votrewebsite.com [NC] RewriteCond% HTTP_REFERER! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Restreindre l'accès direct aux fichiers PHP avec plugin et thème
Cela peut être dangereux si quelqu'un appelle directement vos fichiers de plugin et de thème, que cela se produise accidentellement ou par un attaquant malveillant. Cet extrait de code vient de la société de sécurité de site Web Acunetix; vous pouvez en savoir plus sur cette vulnérabilité dans leur article de blog.
# Restreint l'accès aux fichiers PHP à partir des répertoires de plugins et de thèmes RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / fichier / à / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / directory / to / exclude / RewriteRule wp-content / plugins / (. * \. php) $ - [R = 404, L] RewriteCond% REQUEST_URI! ^ / wp-content / themes / fichier / à / exclure \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / themes / répertoire / à / exclure / RewriteRule wp-content / themes / (. * \. Php) $ - [R = 404, L]
10. Configurer les redirections permanentes
Vous pouvez facilement gérer les redirections permanentes avec .htaccess. Vous devez d'abord ajouter le ancienne URL, puis suivez les nouvelle URL qui pointe vers la page vers laquelle vous souhaitez rediriger l'utilisateur.
# Redirections permanentes Redirect 301 / oldurl1 / http://votresite.com/newurl1 Redirect 301 / oldurl2 / http://votresite.com/newurl2
11. Envoyer les visiteurs à une page de maintenance
Nous avons écrit sur cette technique en détail ici. Tu as besoin d'un page de maintenance séparée (maintenance.html
dans l'exemple) pour que cette règle .htaccess fonctionne. Ce code met votre site WordPress en mode maintenance.
# Redirections vers la page de maintenanceRewriteEngine on RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | gif ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Restreindre tous les accès à WP comprend
le / wp-includes /
dossier contient les fichiers WordPress de base qui sont nécessaires pour que le CMS fonctionne. Il n'y a pas de contenu, plugins, thèmes ou quoi que ce soit d'autre qu'un utilisateur peut vouloir accéder ici. Donc, pour renforcer la sécurité, il est préférable de restreindre tous les accès.
# Bloque tous les dossiers et fichiers wp-includesRewriteEngine sur RewriteBase / RewriteRule ^ wp-admin / comprend / - [F, L] RewriteRule! ^ Wp-includes / - [S = 3] RewriteRule ^ wp-includes / [^ /] + \. Php $ - [F, L] RewriteRule ^ wp-includes / js / tinymce / langs /.+ \. Php - [F, L] RewriteRule ^ wp-includes / theme-compat / - [F, L]
13. Bloquer les scripts intersites (XSS)
L’extrait de code suivant provient de WP Mix et protège votre site contre quelques attaques XSS courantes, à savoir les injections de script et les tentatives de modification des variables globales et de requête.
# Bloque certaines attaques XSSRewriteCond% QUERY_STRING (\ |% 3E) [CN, OU] RewriteCond% QUERY_STRING GLOBALES (= | \ [| \% [0-9A-Z] 0,2) [OR] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Activer la mise en cache du navigateur
Comme je l’ai déjà mentionné, .htaccess est non seulement utile pour des raisons de sécurité et de redirection, mais il peut également vous aider. gérer le cache. L’extrait de code ci-dessous provient de Elegant Themes et rend la mise en cache du navigateur possible en permettant aux visiteurs de sauvegarder certains types de fichiers, alors la prochaine fois qu'ils visitent, ils ne doivent pas les télécharger à nouveau.
# Active la mise en cache du navigateurExpiresActive sur ExpiresByType image / jpg "accès 1 an" ExpiresByType image / jpeg "accès 1 an" ExpiresByType image / gif "accès 1 an" ExpiresByType image / png "accès 1 an" ExpiresByType texte / css "accès 1 mois" ExpiresByType application / pdf "accès 1 mois" ExpiresByType texte / x-javascript "accès 1 mois" ExpiresByType application / x-shockwave-flash "accès 1 mois" ExpiresByType image / x-icon "accès 1 an" ExpiresDefault "accès 2 jours"
15. Configurer des pages d'erreur personnalisées
Vous pouvez utiliser .htaccess pour configurer des pages d'erreur personnalisées sur votre site WordPress. Pour que cette méthode fonctionne, vous devez également créer les pages d'erreur personnalisées (personnalisé-403.html
, personnalisé-404.html
dans l'exemple) et les télécharger dans votre dossier racine.
Vous pouvez configurer une page d'erreur personnalisée pour n'importe quel code d'état d'erreur HTTP (Codes de statut 4XX et 5XX) que vous souhaitez.
# Configure les pages d'erreur personnalisées ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html