htaccess pour WordPress : comment bien le configurer

Vous avez déjà du vous demander s’il étais possible de créer des redirection, de bloquer l’accès à certains contenus, ou même d’optimiser votre site WordPress, et c’est là qu’entre en jeu le fichier .htaccess! Ce petit fichier permet d’ajouter de configurer votre serveur Apache et d’effectuer ces différentes tâches.

Où trouver mon fichier htaccess dans WordPress?

Lors de votre installation de WordPress, un fichier htaccess est automatiquement créé. Pour le trouver et l’éditer , il faut vous connecter à votre hébergement via un FTP. Rendez-vous dans le dossier d’installation de WordPress et il devrait se trouver ici.

Il est également possible de le modifier à partir de l’éditeur de fichier via certains plugins (vous retrouverez comment l’éditer de Yoast SEO ici).

Avant toute modifications de votre fichier htaccess, pensez à en conserver une copie. En cas d’erreur, vous pourrez revenir à une version précédente.

A quoi ressemble le fichier htaccess de WordPress?

Suivant l’installation WordPress de votre site, vous pourrez trouver deux contenu différents:

  • Dans le cas d’une installation simple :
# 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
Contenu du htaccess de WordPress en installation simple
  • Dans le cas d’une installation multisite :
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
Contenu du htaccess dans le cas d’une installation multisite

Quelles directives à mettre dans le htaccess sont utiles pour mon site WordPress?

Maintenant que vous savez où trouver et éditer votre fichier .htacces, nous allons voir quelques directives qui sont intéressantes lors de la création de site internet WordPress.

Protéger votre fichier wp-config

Ce fichier est important à protéger, il contient vos identifiants à la base de donnée… et ça serait embêtant que ces informations tombent entre de mauvaises mains. Voici le code que vous pouvez ajouter à votre htacces :

<FilesMatch "^.*(error_log|wp-config.php|php.ini|.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>
Protéger votre wp-config

Bloquer l’accès à votre site internet à certains utilisateurs

Vous êtes victime d’un spammeur de commentaire? Quelqu’un essaye de forcer l’accès à votre site? Si vous avez l’adresse IP de la personne il est alors possible de lui bloquer complètement l’accès. Ajoutez ces lignes au .htaccess pour le blacklister (il est possible d’ajouter plusieurs personnes en ajoutant plusieurs lignes « deny from xxx.xxx.xx.xx », en remplaçant les x par l’IP des personnes) :

<Limit GET POST>
order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all
</Limit>
Blacklister certaines adresses IP

Créer des redirections 301

C’est probablement la directive que vous utiliserez le plus. Elle permet de créer des redirections directement dans le htaccess sans passer par un plug-in. C’est donc une fonction que nous utiliserons souvent lors du passage de http vers https d’un site, une refonte complète…

Redirect 301 /anciennepage/ 
Redirection de liens

Elle ce construit comme suit :

  1. Redirect 301 : On indique ce c’est une redirection définitive (indiqué grâce au code http 301).
  2. /anciennepage/ : Ici on renseigne la page d’origine.
  3. : Puis on met la nouvelle adresse.

Forcer le téléchargement de certains fichiers

Il peut être intéressant de proposer le téléchargement automatique de certains fichiers sur votre site plutôt que de les laisser s’ouvrir dans le navigateur (fichier PDF par exemple). Voici le code à ajouter:

AddType application/octet-stream .avi .pdf .xls .mp4
Forcer le téléchargement de certains fichiers

Les « .avi .pdf .xls .mp4 » sont les extension des fichier dont vous souhaitez forcer le téléchargement.

Autoriser la mise en cache du navigateur

Afin d’améliorer les performances de votre site, il est intéressant d’activer la mise en cache du navigateur. Ainsi les utilisateur n’auront pas à télécharger à chaque fois tous les éléments de votre site tant qu’ils sont en cache.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##
Activer la mise en cache par le navigateur

Bien que la mise en cache par le htaccess fonctionne très bien, nous vous recommandons fortement l’utilisation du plugin WP Rocket certes payant, mais qui vous fera gagner un précieux temps lors du nettoyage du cache!!! Notez que celui-ci sera donc modifié par le plugin.

Retirer le /category/ de votre URL

Par défaut dans le blog de WordPress, /category/ est présent dans l’URL, ce qui est particulièrement inutile et nuis au référencement. Il est possible de le retirer avec ce code à coller dans votre htaccess (n’oubliez pas de changer le « yourblog » par votre site internet):

RewriteRule ^category/(.+)$ https://www.yourblog.com/$1 [R=301,L]
Suppression du /category/

Nous avons fait le tour des directives du htaccess les plus fréquentes, et vous, êtes-vous capable de configurer vous-même votre htaccess ?

A propos de l'auteur(e)