Le Blog Maintenance WP

Qu’est-ce que le fichier .htaccess sur WordPress ?

14 mars 2023 | Création de sites WordPress

C’est un fichier incontournable et très puissant. Sur WordPress, le fichier .htaccess peut vous aider à renforcer la sécurité de votre site, à effectuer des redirections, ou encore à améliorer la vitesse de chargement de vos pages. 

Pour donner sa pleine mesure, ce précieux allié doit être manipulé avec le plus grand soin. Parce qu’en cas d’erreur de syntaxe dans le code qu’il contient, votre site web plantera. 

Pour vous éviter cela, cet article va tout vous révéler sur ce fichier. À la fin de votre lecture, vous saurez le créer, l’éditer et le modifier grâce à nos conseils pratiques et illustrés.

Vous disposerez enfin d’une quinzaine de règles de configuration à copier-coller directement dans votre fichier .htaccess. 

Le fichier WordPress .htaccess, c’est quoi ?

Définition du .htaccess

Un fichier .htaccess est un fichier texte utilisé par les serveurs web Apache. Il contrôle comment fonctionne et s’exécute un serveur, et permet de modifier sa configuration au niveau de chaque répertoire.
Grâce à l’ajout de directives à ce fichier, vous pouvez notamment renforcer la sécurité de votre site, améliorer ses performances, effectuer des redirections etc.

Voici plusieurs choses à savoir sur le fichier .htaccess : 

  • Htaccess est l’abréviation de hypertext access (accès hypertexte).
  • L’une des particularités d’un fichier .htaccess (sur WordPress ou un autre CMS, Content Management System) réside dans sa syntaxe. Il commence par un point, comme de nombreux fichiers dédiés à la configuration.
    Dans le jargon informatique, on parle aussi de dot files (fichiers avec un point). Les fichiers contenant un point dans leur extension sont souvent cachés (on y reviendra).
  • Un fichier .htaccess est un fichier de configuration du logiciel de serveur web Apache. Il ne sera pas supporté par tous les serveurs web. Ce sera le cas de LiteSpeed, par exemple, mais pas de Nginx. Si votre site WordPress tourne sous Nginx, vous n’aurez pas de fichier .htaccess. 
  • WordPress modifie le fichier .htaccess pour pouvoir gérer la structure de vos permaliens (adresses des pages de votre site web). D’ailleurs, le CMS en profite pour créer votre fichier .htaccess dès que vous personnalisez vos permaliens (et il se met à jour automatiquement dès que vous modifiez leur structure).
  • Certains types de plugins, notamment ceux dédiés à la sécurité et à la mise en cache, utilisent le fichier .htaccess de WordPress pour y ajouter leurs propres règles de configuration

Un exemple de fichier .htaccess sur WordPress

Afin de vous représenter au mieux ce à quoi ressemble ce fichier singulier, voici un exemple de fichier .htaccess pour une installation WordPress de base :

Un fichier .htaccess de base généré par WordPress.
Source : Documentation officielle de WordPress

La capture ci-dessus doit vous sembler abstraite, voire incompréhensible. Décortiquons-la pour la rendre plus claire : 

  • Les lignes précédées d’un signe dièse (#) sont des lignes de commentaire (ex : # BEGIN WordPress et # END WordPress). Chaque commentaire commence obligatoirement par un signe dièse et n’est pas pris en compte comme une directive.
  • Entre les deux lignes de commentaire, vous trouvez un morceau de code qui indique à votre serveur une règle à suivre. Chaque directive s’applique à un répertoire donné et à ses sous-répertoires. Il est donc possible d’avoir plusieurs fichiers .htaccess sur WordPress, dans différents répertoires comme wp-content, wp-admin ou wp-includes.
  • Les initiales des lettres entre crochets (ex : [L]) correspondent à des instructions données au serveur.

Chaque ligne de code a forcément un sens et une syntaxe propre compréhensible par Apache.

Par exemple, “f” désigne un fichier et “d” un répertoire. Le point d’exclamation déclare une négation : les fichiers concernés ne devront pas suivre la directive énoncée.

L’idée ici ne consiste pas à vous embrouiller avec du code complexe et de la technique. Néanmoins, si vous voulez creuser le sujet et mieux comprendre comment déclarer des directives, consultez la documentation officielle d’Apache.

Si vous avez activé le multisite sur votre installation WordPress, les fichiers .htaccess générés seront différents, par rapport à une installation monosite. Voici un exemple pour une installation multisite en sous-dossier :

Un fichier .htaccess issu de la documentation officielle de WordPress.
Source : Documentation officielle de WordPress.

Que peut-on faire avec un fichier .htaccess ?

Comme vous venez de le constater, l’un des intérêts du fichier .htaccess sur WordPress, c’est qu’il est éditable et personnalisable à souhait.

Vous pouvez donc lui ajouter les directives de votre choix, sous la forme de morceaux de code. Ces derniers indiquent à votre serveur web comment se comporter et permettent d’effectuer les actions suivantes, dans trois grandes catégories (sécurité, redirections et performance) : 

  • Mettre en place des redirections, qu’elles soient temporaires (redirections 302) ou permanentes (redirections 301). Vous pouvez vous servir du .htaccess sur WordPress pour rediriger votre site du HTTP vers le HTTPS, par exemple.
  • Bloquer l’accès à votre site web à certaines adresses IP, ou rendre certains fichiers inaccessibles.
  • Réécrire des URLs afin de faciliter le travail d’exploration et d’indexation des moteurs de recherche comme Google.
  • Augmenter la taille maximale de téléchargement de fichiers autorisée par WordPress. 
  • Personnaliser le contenu qui s’affiche sur vos pages d’erreurs 404
  • Protéger certains répertoires par mot de passe.
  • Activer la protection contre le hotlinking. Cette technique consiste à utiliser l’URL d’une photo hébergée sur votre site vers un autre site, sans héberger la photo sur un serveur pour économiser de la bande passante. 

Pour commencer à mettre en place les différentes règles de votre choix, il y a un préalable : localiser votre fichier .htaccess sur WordPress. Explications détaillées dans la partie suivante. 

Où se trouve le fichier .htaccess dans WordPress ?

En règle générale, WordPress crée un fichier .htaccess lorsque vous installez le CMS sur votre serveur d’hébergement.

Vous trouverez ce fichier .htaccess dans le dossier racine de votre site.

La racine, c’est le dossier de base de l’arborescence de votre site web. Celui qui contient tous vos répertoires et fichiers.

Il porte un nom différent en fonction de l’hébergeur que vous utilisez, comme dans les exemples ci-dessous :

  • Chez OVH, il s’appelle www.
  • Chez Kinsta, l’hébergeur que nous recommandons, il porte le nom de public.
  • Chez o2switch, il se nomme public_html.

Attention, il se peut aussi que vous localisiez des fichiers .htaccess à l’intérieur d’autres répertoires de votre site, et pas seulement à la racine.

Pour accéder au dossier racine de votre site WordPress, vous pouvez soit passer par un client FTP (File Transfer Protocol), soit par l’interface proposée par votre hébergeur (ex : cPanel). 

Sur la capture ci-dessous, issue du client FTP appelé Filezilla, vous pouvez remarquer la présence d’un fichier .htaccess :

Un exemple de fichier .htaccess présent sur un client FTP.

Une fois identifié, vous pouvez éditer votre .htaccess. Dans la partie suivante, vous allez découvrir 3 méthodes pour y parvenir. 

Comment modifier un fichier .htaccess sur WordPress ?

Prérequis

Avant de vous jeter à l’eau, il est important de respecter certaines règles d’usage. Le fichier .htaccess de WordPress étant très puissant, vous devez le manipuler avec soin. 

Par exemple, la moindre erreur de syntaxe dans le code fera planter votre site, en affichant une belle erreur 500

Afin d’éviter cette mésaventure, voici quelques conseils à appliquer : 

  • Sauvegardez votre site (fichiers + base de données) avant de configurer votre fichier .htaccess. Pour cela, servez-vous d’un plugin comme UpdraftPlus ou d’un outil de maintenance comme WP Umbrella.
  • Copiez le fichier .htaccess actuel de votre site où vous le souhaitez (ex : sur votre Bureau) avant de le manipuler. En cas de problème, vous pourrez très vite le restaurer. 
  • Ne menez pas vos tests sur un site web en production. Si possible, travaillez d’abord sur un environnement de test. Soit sur une installation locale à l’aide d’un outil gratuit DevKinsta ou Local, soit sur un environnement de pré-production. Si toutes vos directives s’appliquent correctement, vous pourrez ensuite télécharger votre fichier .htaccess en ligne en toute quiétude.
  • Munissez-vous d’un éditeur de texte type Brackets ou Sublime Text. C’est grâce à lui que vous éditerez le fichier .htaccess.
  • Ajoutez vos directives après la ligne de commentaire # END WordPress, car le CMS pourra être amené à modifier le code généré juste au-dessus. 
Une directive présente dans un fichier .htaccess.
La directive encadrée en rouge permet de désactiver l’affichage du contenu des répertoires de WordPress.

Méthode 1 : utiliser cPanel

Un premier moyen d’accéder à votre fichier .htaccess sur WordPress consiste à passer par l’interface proposée par votre hébergeur. 

cPanel est l’une des plus populaires, raison pour laquelle nous allons nous intéresser à elle pour commencer. Pour la marche à suivre, suivez les étapes ci-dessous : 

  1. Connectez-vous à votre cPanel à l’aide des identifiants communiqués par votre hébergeur. En principe, vous les avez reçus par email après avoir souscrit à son offre d’hébergement.
  2. Dans l’encart “Fichiers”, cliquez sur “Gestionnaire de fichiers”. Localisez votre dossier racine et double-cliquez dessus.
  3. Identifiez votre fichier .htaccess dans la liste. Pour l’éditer, faites un clic droit et cliquez sur “Edit”. Encore un peu de patience pour les directives à ajouter, on y consacre une partie entière un peu plus tard.
Exemple de fichier .htaccess sur l'interface cPanel.

Il est possible que votre .htaccess ne soit pas visible. Pas de panique, rappelez-vous : il s’agit souvent d’un fichier caché. Il est quand même possible de l’afficher en cliquant sur le bouton “Paramètres”, en haut à droite de votre page. Dans la fenêtre qui s’ouvre en surbrillance, cliquez sur “Afficher les fichiers masqués (dot files)”. Votre .htaccess devrait normalement apparaître.

Affichage des fichiers masqués sur cPanel.

Méthode 2 : se servir d’un client FTP

Votre hébergeur ne propose pas de cPanel ? Ou vous ne souhaitez pas appliquer cette méthode ?

Une deuxième voie à emprunter pour modifier votre fichier .htaccess consiste à passer par un client FTP. 

On en a brièvement parlé un peu avant, voici la méthode technique pour vous débrouiller tout seul : 

  1. Connectez-vous à votre client FTP favori (Filezilla, Cyberduck, Transmit etc.) à l’aide des identifiants fournis par votre hébergeur. Vous avez besoin de 4 informations : l’hôte de connexion, le port, un nom d’utilisateur et un mot de passe.
  2. Dirigez-vous à la racine de votre site et double-cliquez dessus.
  3. Cherchez votre fichier .htaccess. Lorsque vous l’avez trouvé, cliquez dessus pour le mettre en surbrillance, puis faites un clic droit. Sélectionnez Afficher / Éditer pour l’ouvrir.
Édition d'un fichier .htaccess sur Filezilla.

Méthode 3 : l’usage d’un plugin dédié

Enfin, accéder et modifier votre fichier .htaccess sur WordPress est possible grâce à l’usage d’un plugin. L’avantage, ici, c’est que vous ne quittez pas votre tableau de bord WordPress pour effectuer vos modifications. 

Plusieurs solutions sont à votre disposition pour cela : 

La marche à suivre avec l’extension Htaccess File Editor est la suivante : 

  1. Installez et activez l’extension via le menu Extensions > Ajouter.
  2. Dirigez-vous dans le menu Réglages > WP Htaccess Editor.
  3. Entrez vos règles de configuration. Vous pouvez les tester avant d’enregistrer, pour éviter tout problème (SEOPress Pro permet aussi cela), en cliquant sur le bouton “Test Before Saving”. Si tout fonctionne, terminez en enregistrant vos changements (bouton “Save Changes”).
L'extension Htaccess Editor permet de personnaliser votre fichier .htaccess sur WordPress.

Vous connaissez à présent plusieurs méthodes pour trouver et modifier votre fichier .htaccess sur WordPress. 

Dans certains cas de figure plus rares, il se peut que vous ne disposiez pas de .htaccess (y compris si vous forcez l’affichage des fichiers cachés, comme nous l’avons vu).

Si vous faites face à cette situation, vous devrez créer votre fichier .htaccess de toutes pièces. 

Comment créer un fichier .htaccess ? 

Pour concevoir un nouveau fichier .htaccess, commencez par regénérer vos permaliens.

Pour cela, sur votre back office WordPress (interface d’administration), allez dans Réglages > Permaliens. Et sauvegardez vos permaliens en cliquant sur le bouton “Enregistrer les modifications” :

Regénérer les permaliens permet de créer un fichier .htaccess.

Retournez sur votre client FTP ou votre interface cPanel et vérifiez si le fichier.htaccess a fait son apparition (n’oubliez pas de forcer l’affichage des fichiers cachés si vous ne l’apercevez pas).

Vous n’arrivez toujours pas à mettre la main dessus ? Il est temps de créer votre .htaccess en partant de zéro. 

Encore une fois, sauvegardez votre site web (fichiers + base de données) avant de commencer et menez vos tests sur un environnement de test, justement (pas directement en production).

Pour cela, suivez les étapes suivantes :

  1. Connectez-vous à votre client FTP.
  2. Dans le dossier racine de votre site, faites un clic droit et sélectionnez “Créer un nouveau fichier”. Nommez-le .htaccess.
  3. Ouvrez ce fichier avec votre éditeur de code et ajoutez-lui les règles de configuration contenues dans une installation WordPress de base :

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Si une erreur s’affiche sur votre écran, supprimez tous les ajouts effectués et sauvegardez de nouveau. En principe, tout devrait revenir à l’état normal. 

En principe, le mode de fonctionnement du fichier .htaccess n’a plus vraiment de secrets pour vous. Pour terminer, vous allez voir comment le paramétrer à votre guise, en lui ajoutant les directives de votre choix.

Comment configurer le fichier .htaccess de WordPress : 13 règles pour l’optimiser

Avant de commencer à éditer votre fichier .htaccess, on vous rappelle une dernière fois quelques règles de base (elles ne sont jamais de trop) : 

  • Sauvegardez votre site avant toute modification sur votre fichier .htaccess.
  • Copiez le contenu de votre fichier .htaccess actuel dans un fichier texte, sur votre ordinateur.
  • Ajoutez vos règles de configuration sous les directives déjà présentes dans votre fichier actuel.

Règles .htaccess sur WordPress relatives à la sécurité

Empêcher l’accès au .htaccess

Grâce au morceau de code ci-dessous, vous renforcerez la sécurité de votre fichier WordPress .htaccess. 

La personne souhaitant y accéder se verra afficher une erreur 403 : 

# Sécuriser le fichier .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

Empêcher l’accès à un fichier spécifique

Vous pouvez restreindre l’accès à un fichier spécifique avec cette directive. Remplacez le nom du fichier présenté dans le snippet (votrefichier.jpg) par le nom et l’extension de fichier de votre choix. 

# Restreindre l’accès à un fichier
<files votrefichier.jpg>
Order allow,deny
Deny from all
</files>

Restreindre l’accès au dossier wp-admin

Pour empêcher une personne de se connecter à votre interface d’administration, créez un nouveau fichier .htaccess que vous ajouterez dans le répertoire wp-admin de votre site web WordPress.

Puis ajoutez la directive suivante dans le fichier .htaccess (remplacez les croix de l’adresse IP factice par l’adresse IP autorisée à se connecter à votre site) :

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</Limit>

Bloquer une adresse IP

Si vous êtes victime de spam de la part d’une adresse IP précise, vous pouvez lui empêcher d’accéder à votre site avec ce morceau de code. 

Remplacez l’adresse IP factice proposée dans le snippet par celle de votre choix :

<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>

Désactiver l’affichage du contenu des répertoires

Par défaut, les répertoires (et leur contenu) de votre site WordPress sont accessibles en tapant une simple URL dans votre navigateur. Cela pose un problème de sécurité important, car n’importe qui peut consulter et copier certaines informations de votre site. Sans parler de le pirater.

Afin d’éviter cela, copiez-collez le code suivant dans votre fichier .htaccess :

# Désactiver l’affichage du contenu des répertoires
Options All -Indexes

Bloquer l’affichage du fichier wp-config.php

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

Éviter le spam de commentaires

Vous êtes victime de nombreux commentaires spam vantant les mérites de produits et autres sites douteux ? Copiez-collez ce morceau de code dans votre fichier .htaccess pour vous en débarrasser.

Remplacez votresite.com par le nom de votre site :

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

Un bon conseil pour limiter le spam consiste aussi – et surtout – à activer un plugin comme Akismet, présent par défaut sur toute nouvelle installation de WordPress. 

Masquer les informations relatives au serveur

Grâce à cette directive, vous empêcherez certaines pages d’afficher des informations permettant d’identifier votre serveur. 

# Masquer les informations relatives au serveur
ServerSignature Off

Directives pour créer des redirections

Créer une redirection 301

Une redirection permanente (redirection 301) redirige une URL A (ex : mapage.fr) vers une URL B (tapage.fr). 

# Rediriger une page vers une autre
Redirect 301 /mapage.html https://www.yourwebsite.com/nouvellepage.html

Pour créer des redirections, vous pouvez aussi vous servir du plugin éponyme : Redirection.

Rediriger un domaine en www vers un domaine sans www

Servez-vous de ce code pour rediriger un site en www (ex : www.maintenancewp.fr) vers un site sans www (ex : maintenancewp.fr).

Remplacez supersite.com par le nom de domaine de votre choix :

# Rediriger vers un nom de domaine sans www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.supersite\.com [NC]
RewriteRule ^(.*)$ http://supersite.com/$1 [L,R=301]

Rediriger un domaine sans www vers un domaine avec www

A contrario, il est possible de rediriger un nom de domaine sans www vers un nom de domaine avec www.

Pensez toujours à remplacer supersite.com par votre nom de domaine :

# Redirection du site sans www vers www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^supersite.com [NC]
RewriteRule ^(.*)$ http://www.supersite.com/$1 [L,R=301]

Rediriger vers le HTTPS

La directive suivante forcera vos visiteurs à naviguer sur la version en HTTPS de votre site.

Au préalable, vous devez avoir activé un certificat SSL, la plupart du temps proposé gratuitement par votre hébergeur :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Règles pour améliorer les performances

Empêcher le hotlinking de vos images

Lorsque vous êtes victime de hotlinking, une personne mal intentionnée copie l’URL d’une image de votre site pour l’afficher sur le sien sans avoir à télécharger l’image dans sa Médiathèque (entre autres).

Problème ? Pour afficher cette image, c’est à votre serveur d’hébergement qu’il est fait appel. Du coup, vous consommez plus de bande passante, ce qui peut ralentir la vitesse de chargement des pages de votre site ou de vos sites. 

Pour éviter ce désagrément, entrez ce code dans votre fichier .htaccess (remplacez votresite.com par votre nom de domaine) :

# Empêcher le hotlinking de vos images
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votresite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Pour aller plus loin et découvrir d’autres directives, on vous recommande les ressources et sites suivants :

Récapitulatif

Correctement utilisé, le fichier .htaccess de WordPress est un outil très puissant pour renforcer la sécurité, créer des redirections, ou encore améliorer la performance de votre site.

Tout au long de ces lignes, vous avez découvert les éléments suivants : 

  • Qu’est-ce qu’un fichier .htaccess et son utilité.
  • Comment localiser ce fichier et le modifier.
  • Comment créer un .htaccess en partant de zéro.
  • Les bonnes pratiques pour manipuler le fichier .htaccess.
  • Des règles pour configurer des fonctionnalités supplémentaires sur votre serveur.

Sur WordPress, configurer un fichier .htaccess n’est pas sans risques. Vous devez prêter attention à la syntaxe, et surtout vous couvrir en prenant des précautions d’usage avant d’agir (ex : sauvegarde de votre site). 

Malgré tout cela, une erreur s’affiche après avoir édité votre fichier chez vous ? Ou vous souhaitez simplement être guidé dans la configuration de ce fichier clé ? 

Rapide, professionnelle et efficace, l’équipe d’experts de Maintenance WP se tient à votre disposition 7 jours/7 pour vous accompagner sur-mesure. Contactez-nous pour en savoir plus.

Sur le même sujet :

Comment dupliquer facilement un site WordPress ?

Comment dupliquer facilement un site WordPress ?

Imaginez. Imaginez un site WordPress actif à un emplacement A, par exemple sur un serveur d’hébergement en ligne.  Maintenant, imaginez un clone de ce premier site internet, identique en tous points. Cette copie conforme se trouve elle à un emplacement B, par...

9 conseils pour l’éco-conception d’un site web

9 conseils pour l’éco-conception d’un site web

La production d’électricité. Les usines. Les transports. Les produits ménagers. On ne vous apprend rien si on vous dit que tous ces éléments polluent et sont responsables de la dégradation de l’environnement.  C’est peut-être moins évident à première vue, mais...