Optimiser le fichier .htaccess

Dans ce tutoriel vous découvrirez le fichier .htaccess de votre site WordPress. Nous en profiterons pour y ajouter quelques lignes de code afin de renforcer la sécurité de votre site WordPress.

Les points-clés à retenir

  • Le fichier .htaccess est un fichier de configuration du côté serveur.
  • Lors de l’installation de WordPress le fichier .htaccess est automatiquement créé si le serveur est un serveur Apache.
  • Le fichier .htaccess est situé à la racine de votre site web.
  • Lors de l’installation de WordPress certains serveurs comme NGINX, dans ce cas le fichier .htaccess n’existe pas.
  • Lorsque vous installez un plugin WordPress celui-ci vient généralement ajouter quelques lignes de code à votre fichier .htaccess, c’est notamment le cas des plugins de Cache et des plugins de sécurité.
  • Le fichier .htaccess doit être manipulé avec précaution au risque de rendre votre site WordPress inaccessible.
Message en cas d'erreur sur le fichier .htaccess

Les possibilités offertes par le fichier .htaccess

  • Renforcer la sécurité d’un site
  • Dissimuler des informations sensibles
  • Spécifier le codage (charset)
  • Restreindre les accès
  • Spécifier la mise en cache
  • Mettre en place les redirections (404, 403, etc.) et réécriture d’URL
  • Limiter le spam

Fichier .htaccess introuvable

Le fichier .htaccess étant un fichier à manipuler avec soin celui-ci est donc parfois masqué par précaution par votre hébergeur. Pour le rendre visible il vous suffit de vous rendre dans paramètre et de cliquer sur Afficher les fichiers masqués (dotfiles).

afficher le fichier .htaccess sur o2switch

Améliorer le fichier .htaccess de votre site WordPress

Attention avant de modifier ou ajouter des nouvelles lignes de code à votre fichier .htaccess, pensez au préalable à en faire une copie ou à le dupliquer.

Sécuriser l’accès du fichier .htaccess et .htpasswds

Protéger l’accès aux fichiers .htaccess et .htpasswds


# Protéger .htaccess et .htpasswds
<Files ~ "^.*\.([Hh][Tt][AaPp])">
order allow,deny
deny from all
satisfy all
</Files>

Sécuriser l’accès du fichier wp-config.php

Empêcher l’accès au fichier wp-config.


# Protéger le fichier wp-config
<Files wp-config.php>
order allow,deny
deny from all
</Files>
#Fin du blocage

Protéger la lecture des répertoires

Empêcher les visiteurs de pouvoir consulter les répertoires qui ne contiennent pas de fichier index.


# Protéger la lecture des répertoires
Options All -Indexes

Masquer les informations relatives au serveur web de votre hébergeur


# Masquer les informations du serveur
ServerSignature Off

Masquer les identifiants des auteurs

Une ligne de code qui permet d’éviter que l’on ne découvre l’identifiant d’un auteur. L’identifiant est utilisé sur la page de connexion.


# Masquer l'identification d'un auteur
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* - [F]
</IfModule>

Limiter le Spam des commentaires


# Limiter le Spam dans les commentaires
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.monsite.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

Protéger votre site contre les injections de fichiers


# Protection contre les injections de fichiers
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]

Protéger votre site contre le clickjacking, le MIME Sniffing et les attaques XSS


# Protections contre le clickjascking, les attaques XSS et le Sniffing
<ifModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options: "nosniff”
</ifModule>

Suivre les liens symboliques


# Suivre les liens symboliques
Options +FollowSymLinks

Encoder par défaut en UTF-8

UTF-8 est un codage de caractères informatiques, le définir est une sécurité supplémentaire.


# Encodage par défaut des fichiers textes et HTML
AddDefaultCharset UTF-8

Rediriger le HTTP vers le HTTPS

Votre site ayant été créé en HTTPS il est important de rediriger le HTTP vers le HTTPS.


# Redirection vers HTTPS 
RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} 

Forcer le HTTPS

Le Strict Transport Security (HSTS) va venir forcer votre site, les utilisateurs et les navigateurs Web à communiquer en HTTPS. Cela rend plus compliquée la tâche des pirates informatiques qui essayeront d’utiliser des scripts pour charger des ressources en HTTP sur votre domaine.


# Oblige les connexions HTTPS
Header always set Strict-Transport-Security "max-age=300; includeSubDomains; preload"

Rediriger un site avec ou sans www

Dans le cas ou vous avez optez pour la conservation du www dans votre URL (comme c’est le cas de capdecom).

PS : N’oubliez pas de modifier l’URL par celle de votre site 😉


# Redirection du site sans www vers www
RewriteEngine On
RewriteCond %{HTTPS_HOST} ^capdecom.fr [NC]
RewriteRule ^(.*)$ https://www.capdecom.fr/$1 [L,R=301]

Dans le cas ou vous avez optez pour le retrait du www dans votre URL.

PS : N’oubliez pas de modifier l’URL par celle de votre site 😉


# Redirection du site avec www vers la version sans www
RewriteEngine on
RewriteCond %{HTTPS_HOST} ^www\.capdecom\.fr [NC]
RewriteRule ^(.*)$ https://capdecom.fr/$1 [L,R=301]

Le mot de votre formateur

formateur WordPress

Clément Rousseau

Consultant SEO et formateur WordPress

La manipulation du fichier .htaccess peut s’avérer très utile pour protéger votre site web. Attention néanmoins celle-ci doit se faire avec précaution, pensez toujours à en faire une copie au préalable.

Questions fréquentes sur le fichier .htaccess

Qu’est-ce que le fichier .htaccess ?

Le fichier .htaccess est un fichier de configuration présent sur les serveurs Apache. Le serveur Apache est le serveur le plus populaire sur le WEB (World Wide Web).

Quelle est l’utilité du fichier .htaccess ?

Le fichier .htaccess comporte un grand nombre d’utilités, il permet de réaliser une variété d’actions relatives à un site web. Le fichier .htaccess permet :

De renforcer la sécurité d’un site sous Apache
De dissimuler des informations sensibles
De restreindre certains accès et/ou bloquer certaines adresses IP
De spécifier les règles de cache
D’effectuer des redirections (404, 403, etc.) et des réécritures d’URL