Le guide ultime du fichier WordPress .htaccess

Publié: 2022-08-10

Je ne suis vraiment pas facile à comprendre : mon code par défaut ressemble au chinois.

Je me démarque par mon apparence singulière, car mon nom n'a pas d'extension.

J'ai aussi des pouvoirs magiques. Si vous me configurez correctement, je suis capable de ce qui suit :

  • Amélioration de la sécurité de votre site Web.
  • Augmenter la vitesse de chargement de vos pages.
  • Paramétrage des redirections.
  • Limiter les spams.
  • Et même faire quelques blagues : c'est mon côté effronté.
Vraiment?!
Blagues? Ah bon?

Vous ne savez toujours pas qui je suis ? Je suis le fichier .htaccess de votre site WordPress. Apprenons à mieux me connaître dans ce guide sur la façon dont je travaille.

Au fil de ces lignes, vous découvrirez plus d'une trentaine de lignes directrices pour me configurer. Ils se matérialisent sous forme de morceaux de code prêts à l'emploi, qu'il vous suffira de copier-coller chez vous.

Continuez à lire, vous ne serez pas déçu !

Aperçu

  1. Qu'est-ce qu'un fichier .htaccess ?
    1. Comment fonctionnent les fichiers .htaccess ?
      1. Comment créer un fichier .htaccess
        1. Précautions à prendre avant de personnaliser un fichier .htaccess
          1. Comment modifier correctement votre fichier .htaccess.
            1. Comment personnaliser le fichier .htaccess à la racine d'un site Web ?
              1. Comment personnaliser le fichier .htaccess dans wp-admin
                1. Comment personnaliser le fichier .htaccess dans wp-includes ?
                  1. Comment personnaliser le fichier .htaccess dans wp-content ?
                    1. Comment personnaliser le fichier .htaccess dans wp-content/uploads ?
                      1. Récapitulatif final sur le fichier .htacess dans WordPress

                        Initialement écrit en octobre 2015, cet article a été mis à jour pour la dernière fois en juillet 2022.

                        Vos meilleurs projets WordPress ont besoin du meilleur hébergeur !

                        WPMarmite recommande Bluehost : excellentes performances, excellent support. Tout ce dont vous avez besoin pour un bon départ.

                        Essayez Bluehost
                        CTA Bluehost WPMarmite

                        Qu'est-ce qu'un fichier .htaccess ?

                        Un fichier .htaccess est un fichier de configuration pour Apache, le logiciel que la plupart des serveurs Web utilisent pour s'exécuter. Le contenu de ce fichier donnera des directives à Apache pour que le serveur se comporte d'une certaine manière.

                        Attention, certains hébergeurs ne fonctionnent que sur le serveur NGINX. C'est le cas de Flywheel, par exemple. Ils n'ont pas de fichier .htaccess .

                        Presque tous les sites Web utilisant WordPress ont un fichier .htaccess . En fait, WordPress le crée automatiquement lors de l'installation, pour inclure les paramètres de permaliens pour le site Web.

                        Lorsque vous allez dans Paramètres > Permaliens pour choisir un format d'URL (normalement "Nom de publication"), le fichier .htaccess est modifié.

                        Comment fonctionnent les fichiers .htaccess ?

                        Il faut savoir qu'un site web peut avoir plusieurs fichiers .htaccess .

                        Tout d'abord, il y a le fichier principal .htaccess , situé à la racine du site Web.

                        La racine d'un site Web est l'endroit où se trouvent les fichiers WordPress (dossiers wp-admin , wp-includes et wp-content ainsi que d'autres fichiers) sur votre serveur. Vous pouvez y accéder en vous connectant par exemple à votre client FTP. Le nom de ce dossier racine peut varier en fonction de votre hébergeur. Par exemple, il s'appelle public_html chez Bluehost (lien affilié) et www chez OVH.

                        Le contenu du fichier principal .htaccess influencera l'ensemble du site Web.

                        D'autres fichiers .htaccess peuvent être créés dans des sous-répertoires. Dans le cas de WordPress, un peut être placé dans le répertoire wp-admin ou wp-content/uploads , par exemple.

                        Les fichiers .htaccess secondaires influenceront les répertoires dans lesquels ils se trouvent, ainsi que leurs sous-répertoires.

                        Si nous imaginons qu'un fichier .htaccess est présent dans wp-content/uploads , le répertoire uploads et tous ses sous-répertoires seront impactés par ce qui est défini dans le fichier .htaccess .

                        Comment créer un fichier .htaccess

                        Logiquement, votre site web devrait avoir au moins un fichier .htaccess , celui situé à la racine de votre site web. Vous pouvez le modifier à l'aide de votre éditeur de code préféré (Sublime Text, Brackets, Notepad++, Coda, etc.).

                        Il existe d'autres solutions, comme le plugin Htaccess File Editor, pour l'éditer directement depuis votre tableau de bord WordPress.

                        Mais, en cas de problème, il faudra passer par votre client FTP et votre éditeur de code, autant le faire directement à la main.

                        Si vous devez ajouter un fichier .htaccess à un sous-répertoire, suivez ces instructions.

                        Créez un fichier .htaccess depuis votre ordinateur

                        1. Créez un nouveau fichier texte et nommez-le htaccess.txt .
                        2. Modifiez-le comme vous le souhaitez.
                        3. Envoyez-le à la racine de votre serveur.
                        4. Renommez-le .htaccess .
                        Un fichier .htaccess sur un logiciel FTP.

                        Créez un fichier .htaccess à partir de votre serveur

                        1. Faites un clic droit dans le répertoire où il devrait se trouver.
                        2. Ajoutez un nouveau fichier et nommez-le .htaccess.
                        3. Modifiez-le avec votre éditeur de code (Notepad++, Coda, Sublime Text ou autre).

                        Félicitations, vous savez maintenant à quoi sert un fichier .htaccess et comment le créer. Avant de savoir quelles consignes vous pouvez y ajouter, rappelez-vous d'être prudent !

                        Attention à vos yeux, ça peut piquer !

                        Précautions à prendre avant de personnaliser un fichier .htaccess

                        La personnalisation du code d'un fichier .htaccess est assez simple (en particulier avec les extraits de code proposés dans le reste de cet article), mais vous ne devriez toujours pas vous y lancer avec des armes à feu.

                        Avant d'apporter des modifications, je vous recommande de faire d'abord une sauvegarde de votre site Web WordPress. Pour cela, vous pouvez utiliser un plugin dédié comme UpdraftPlus.

                        Ensuite, enregistrez le contenu initial de votre fichier .htaccess . Pour ce faire, vous pouvez :

                        • Dupliquez le fichier .htaccess sur votre serveur dans un fichier .htaccess-initial .
                        • Copiez le contenu du fichier dans un fichier texte, sur votre ordinateur.

                        Si vous rencontrez un problème, vous pouvez facilement restaurer le contenu d'origine.

                        Comment modifier correctement votre fichier .htaccess.

                        Pour apporter des modifications, suivez la procédure ci-dessous :

                        • Ouvrez le fichier dans votre éditeur de code.
                        • Placez vos ajouts dans le fichier.
                        • Sauvegarde le.
                        • Mettez à jour votre site Web pour voir si tout va bien.

                        L'actualisation de votre site Web est très importante : cela vous aidera à voir s'il y a des problèmes avec le code ajouté.

                        En général, une erreur 500 "Internal Server Error" apparaîtra à l'écran, s'il y a un problème :

                        500 Exemple d'erreur interne du serveur.

                        Dans ce cas, annulez vos modifications et enregistrez à nouveau. Tout devrait revenir à la normale.

                        Parfois, certains hébergeurs n'acceptent pas de code spécifique dans le fichier .htaccess

                        Vous devrez faire avec.

                        Contactez le service client de votre hébergeur pour en savoir plus. Espérons qu'il n'aura besoin que d'une légère modification pour le faire fonctionner.

                        Rencontrez-vous une erreur WordPress, telle que l'erreur 500 typique et répandue ? WPMarmite propose un guide complet pour résoudre les principaux.

                        Cette fois, tout va bien. Vous savez comment fonctionne un fichier .htaccess , comment le créer et le modifier correctement.

                        Découvrez maintenant comment le personnaliser à 5 endroits différents :

                        1. A la racine du site
                        2. Dans wp-admin
                        3. Dans wp-includes
                        4. Dans wp-content
                        5. Dans wp-content/uploads

                        Commençons tout de suite par la racine du site Web. Vous verrez, ce sera la pièce la plus cohérente.

                        Comme dans tous les langages informatiques, le fichier .htaccess permet d'inclure des commentaires. Pour ce faire, placez simplement le symbole # au début d'une ligne afin que la ligne soit ignorée. C'est très pratique pour se souvenir des lignes de code qui fonctionnent. Vous pourrez voir les commentaires dans les exemples de cet article.

                        Comment personnaliser le fichier .htaccess à la racine d'un site Web ?

                        Si votre installation s'est bien déroulée, vous trouverez un fichier .htaccess à la racine de votre site web. Il contiendra le code suivant :

                         # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\. php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
                        Code par défaut du fichier WordPress .htaccess

                        Si vous utilisez WordPress en mode multisite, le code par défaut du fichier .htaccess sera différent. Cela ne vous affectera pas dans la plupart des cas.

                        Maintenant que vous avez localisé ce fichier, vous pourrez améliorer son contenu avec les extraits de code ci-dessous pour accomplir certaines tâches spécifiques. Cela peut être une question de sécurité, mais aussi d'autres choses.

                        Veillez à ne pas inclure de code entre les commentaires # BEGIN WordPress et # END WordPress car il est possible que ce code soit modifié dans certains cas.

                        Autre rappel : enregistrez votre fichier .htaccess d'origine avant d'apporter des modifications. Vous devez pouvoir revenir en arrière si vous avez des problèmes.

                        Désactiver les répertoires d'affichage

                        Par défaut, si vous tentez d'accéder aux répertoires d'un site Web, le serveur les affichera. Le formatage ressemblera à ceci :

                        Index de /wp-includes

                        Vous pouvez imaginer que c'est le pain et le beurre pour les pirates. Le fait qu'ils puissent voir les fichiers sur votre site Web les aidera à mieux pouvoir l'attaquer. Insérez le code suivant dans votre fichier .htaccess pour protéger votre site Web :

                         # Disable display of directory contents Options All -Indexes

                        Il est également possible d'utiliser ce code pour empêcher le listage des répertoires :

                         # Alternative to prevent directory listing IndexIgnore *

                        Masquer les informations du serveur

                        Chez certains hébergeurs, les pages affichées peuvent contenir des informations sur le serveur. Ces informations peuvent donner des détails aux attaquants potentiels.

                        Il est donc préférable de les masquer avec le code suivant :

                         # Hide the information from server ServerSignature Off

                        Activer les liens symboliques suivants

                        Je dois vous parler de charabia complet, mais il est important d'insérer cette ligne de code dans votre fichier .htaccess principal :

                         # Enable following symbolic links Options +FollowSymLinks

                        Cela permettra à votre serveur de suivre ce qu'on appelle des liens symboliques, c'est-à-dire des shortcodes.

                        Réglez votre serveur à l'heure correcte

                        Ce n'est pas vraiment important, mais si votre serveur est à l'étranger, vous pouvez lui dire de se régler sur votre fuseau horaire avec cette ligne de code :

                         # Choose time zone SetEnv TZ America/New_York

                        Définir l'encodage de caractères par défaut

                        Le code suivant vous permet de définir le codage de caractères pour les fichiers texte et HTML sur UTF-8 (un codage de caractères informatique). Sans cela, il y a un risque que les accents soient mal compris.

                         # Default encoding of text and HTML files AddDefaultCharset UTF-8

                        Protéger wp-config.php

                        Le fichier de configuration de votre site Web ( wp-config.php ) contient les informations d'identification pour se connecter à la base de données.

                        Il s'agit du fichier le plus sensible de votre site Web. Il peut être la cible de pirates potentiels. Il peut être protégé en ajoutant ce code au fichier principal .htaccess :

                         # Protect the wp-config.php file <files wp-config.php> order allow,deny deny from all </files>

                        Protégez le fichier .htaccess lui-même

                        Comme le fichier wp-config.php , le fichier .htaccess doit être protégé au maximum. Pour cela, insérez ce code :

                         # Protect .htaccess and .htpasswds files <Files ~ "^.*\.([Hh][Tt][AaPp])"> order allow,deny deny from all satisfy all </Files>

                        Limitez les spams de commentaires

                        Vous le savez aussi bien que moi si vous avez un blog, les spams de commentaires sont une vraie plaie.

                        Heureusement, il existe une astuce pour empêcher cela directement dans le fichier .htaccess . Ce n'est pas une solution miracle mais, combiné avec le plugin Akismet, la majorité des spams devraient être filtrés.

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

                        N'oubliez pas de remplacer mywebsite.com par votre nom de domaine.

                        Rejoignez les abonnés WPMarmite

                        Obtenez les derniers messages WPMarmite (ainsi que des ressources exclusives).

                        ABONNEZ-VOUS MAINTENANT
                        Bulletin d'information en anglais de WPMarmite

                        Éviter la détection de l'identifiant d'un auteur

                        Même si vous utilisez une connexion utilisateur complexe, elle peut toujours être détectée.

                        Bien sûr, je suppose que vous ne l'affichez pas déjà publiquement avec votre thème (cela peut arriver).

                        Essayez de taper mywebsite.com/?author=x en remplaçant x par 1 pour l'administrateur ou l'ID de l'un de vos auteurs. Si vous n'êtes pas protégé, vous serez redirigé vers une page comme mywebsite.com/author/author_id .

                        C'est ainsi que vous trouvez un identifiant d'utilisateur en deux secondes. A partir de là, il ne reste plus qu'à essayer de deviner votre mot de passe.

                        Pour vous protéger de cette technique, utilisez le code suivant :

                         # Prevent the detection of an author's ID <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* - [F] </IfModule>

                        Désactivez le hotlinking de vos images

                        Qu'est-ce que le hotlinking ? Ne vous inquiétez pas, je vais tout vous expliquer.

                        Fondamentalement, une fois que vous ajoutez des images à votre site Web (par exemple dans un article), n'importe qui peut copier l'URL d'une de vos images et l'afficher sur son site Web.

                        Vous pourriez penser que ce n'est pas si grave, mais si pour une raison quelconque un site Web très suivi récupère votre image et l'affiche sur l'une de ses pages, des requêtes seront adressées à votre serveur.

                        Le hotlinking est en fait un vol de bande passante . Si votre site web est installé sur un petit serveur mutualisé, votre hébergeur risque de ne pas l'apprécier car les ressources sont limitées.

                        Pour éviter le problème, insérez et personnalisez ce code dans votre fichier .htaccess :

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        Remplacez mywebsite.com par votre nom de domaine

                        Pour autoriser certains sites Web à afficher vos images, utilisez le code suivant :

                         # Disable hotlinking of your images RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite2.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mywebsite3.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://fakeimg.pl/400x200/?text=Do_not_touch_the_images [NC,R,L]
                        Remplacez mywebsite.com, mywebsite2.com et mywebsite3.com par les domaines de votre choix

                        Vous pouvez également personnaliser l'image qui sera affichée à la place de l'image demandée. J'ai ajouté quelque chose de simple, mais vous pouvez être plus créatif.

                        Interdire les adresses IP

                        Si vous avez remarqué que certaines adresses IP tentent un peu trop souvent de se connecter à l'administration de votre site (par exemple avec le plugin Login Lockdown), vous pouvez vous en débarrasser en bannissant leur adresse IP.

                        Vous avez également la possibilité de récupérer les adresses IP des spammeurs de commentaires pour les bannir de votre site.

                        Cette solution n'est pas permanente car votre attaquant peut changer d'adresse IP, mais elle peut fonctionner contre des personnes moins qualifiées.

                         # Ban an IP address <Limit GET POST> order allow,deny deny from xxx.xxx.xxx.xxx allow from all </Limit>
                        Remplacez xxx.xxx.xxx.xxx par l'adresse IP à bannir

                        Bloquer les visiteurs de certains sites Web

                        Si vous réalisez qu'un site Web non conforme est lié au vôtre et que vous ne souhaitez pas que les visiteurs de ce site Web aient accès à votre site Web, utilisez ce code :

                         # Prevent visitors to these sites from accessing yours <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} mywebsite1.com [NC,OR] RewriteCond %{HTTP_REFERER} mywebsite2.com [NC,OR] RewriteRule .* - [F] </ifModule>
                        Remplacez mywebsite1.com et mywebsite2.com par les sites Web de votre choix

                        Rediriger les visiteurs d'un site Web à un autre

                        Pour aller plus loin dans le conseil précédent, vous pouvez rediriger les visiteurs de certains sites Web vers un autre site Web.

                        Voici le code à utiliser :

                         # Redirect visitors from one site to another RewriteEngine on RewriteCond %{HTTP_REFERER} sourcewebsite\.com/ RewriteRule ^(.*)$ http://www.destinationwebsite.com [R=301,L]
                        Remplacez les sites Web source et de destination par ceux de votre choix

                        Créer des redirections

                        Le fichier .htaccess permet de faire des redirections (redirection URL A vers URL B).

                        C'est pratique pour rediriger quelques pages, mais si vous souhaitez créer beaucoup de redirections, je vous recommande le plugin WordPress Redirection, que j'ai présenté dans cet article.

                        Comment créer des redirections dans le fichier .htaccess :

                         # Redirection of any page Redirect 301 /oldpage/ http://www.mywebsite.com/newpage # Redirection of a new category (with renaming from category to topic) Redirect 301 /category/technology/ http://www.mywebsite.com/topic/techno/

                        Rediriger l'adresse sans www vers une adresse avec www

                        Lors de la mise en place d'un site internet, une des actions à accomplir en premier est de rediriger le site internet sans le www vers la version avec le www (ou inversement).

                        Si vous faites le test la prochaine fois que vous créerez un site Web, vous constaterez que les deux adresses ne renvoient pas nécessairement à votre site Web.

                        Dans certains cas, l'hébergeur s'en chargera automatiquement, ou il faudra l'activer via la page d'administration du site hébergeur (c'est le cas chez Gandi par exemple).

                        Si vous devez effectuer cette redirection manuellement, utilisez le code suivant en remplaçant mywebsite.com par votre site Web :

                         # Redirection of site without www to www RewriteEngine On RewriteCond %{HTTP_HOST} ^mywebsite. com [NC] RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]
                        Remplacez mywebsite.com par votre nom de domaine

                        Rediriger l'adresse avec www vers une adresse sans www

                        Par contre, si vous ne voulez pas le www devant le nom de votre site (comme avec WPMarmite), il est possible de rediriger vers la version sans le www .

                        Insérez le code suivant dans le fichier .htaccess :

                        Attention : N'utilisez pas ce code avec le précédent sinon votre site subira une boucle de redirection (car la version sans www redirigera vers la version avec www qui redirigera vers la version sans www , etc.).

                        Rediriger vers HTTPS

                        Si vous avez mis en place un certificat SSL sur votre site web pour le basculer en HTTPS, vous devez vous assurer que tous vos visiteurs naviguent sur la version sécurisée de votre site web.

                        Dans le cas contraire, des informations sensibles pourraient être récupérées par des pirates (données personnelles ou bancaires par exemple).

                        Utilisez le code suivant pour basculer l'ensemble de votre site Web vers HTTPS :

                         # Redirection to HTTPS RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(. *)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

                        Forcer le téléchargement de fichiers spécifiques

                        Lorsque vous souhaitez télécharger un fichier depuis un site Web, votre navigateur essaie parfois de l'ouvrir pour l'afficher.

                        Personnellement, je trouve cela pratique pour les fichiers PDF. En revanche, c'est très désagréable pour les autres types de fichiers.

                        Insérez le code suivant pour que vos visiteurs téléchargent directement les fichiers avec ces extensions (modifiez-les à votre guise) :

                         # Force download for these file types AddType application/octet-stream .doc .docx .xls .xlsx .csv .mp3 .mp4

                        Créer une page de maintenance personnalisée

                        Dans un précédent article, vous avez découvert une sélection de plugins de maintenance. Pourtant, il y a des cas où la page de maintenance ne pourra pas s'afficher.

                        C'est ennuyeux, n'est-ce pas ?

                        Pour obtenir une page de maintenance, vous pouvez utiliser le code suivant :

                         # Maintenance page RewriteEngine on RewriteCond %{REQUEST_URI} ! /maintenance.html$ RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx RewriteRule $ /maintenance.html [R=302,L]

                        Pour que cela fonctionne, vous devez :

                        • Créez un fichier maintenance.html dont le contenu indique que le site Web est en cours de maintenance.
                        • Ajoutez votre adresse IP en ligne 4 (en veillant à conserver le « \ ») pour vous permettre d'accéder au site (retrouvez votre adresse IP sur ce site).

                        Lorsque la maintenance est terminée, mettez « # » devant chaque ligne pour les passer en commentaire.

                        Activer la mise en cache

                        Le fichier .htaccess vous permet de mettre en cache certains fichiers de votre site Web dans le navigateur de votre visiteur afin qu'ils se chargent plus rapidement.

                        En effet, le navigateur n'aura pas besoin de retélécharger des fichiers dans son cache.

                        Pour ce faire, insérez le code suivant :

                         # Caching of files in the browser <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" ExpiresByType text/html "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/pdf "access plus 0 seconds" ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType application/x-font-woff "access plus 1 month" ExpiresByType application/x-font-woff2 "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" ExpiresByType text/css "access plus 6 month" ExpiresByType application/javascript "access plus 6 month" ExpiresByType application/x-shockwave-flash "access plus 1 week" ExpiresByType image/x-icon "access plus 1 week" </IfModule> # Headers Header unset ETag FileETag None <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "private, must-revalidate" </filesMatch> </ifModule>

                        La mise en cache des fichiers sera effective pendant la durée spécifiée pour chaque type de fichier ou jusqu'à ce que le visiteur vide son cache.

                        Pour accélérer votre site Web avec la mise en cache, je vous recommande d'utiliser le plugin premium WP Rocket (lien affilié). Comme il est simple et rapide à mettre en place, il est parfait pour les débutants sur WordPress. Avec son aide, vous n'aurez pas besoin d'utiliser l'extrait (morceau de code) proposé ci-dessus.

                        Accélérez votre site Web avec WP Rocket

                        Transformez votre site en fusée avec le plugin de mise en cache le plus puissant reconnu par les experts WordPress.
                        Essayez WP Rocket
                        Logo WP Fusée

                        Activer la compression

                        En plus de tout ce que nous avons vu jusqu'à présent, il est possible de compresser certaines ressources avant qu'elles ne soient transférées du serveur vers le navigateur.

                        Et la compression des fichiers signifie une vitesse de chargement de page plus rapide. Je vous recommande donc d'implémenter ce code pour accélérer la vitesse de votre site Web :

                         # Compression of static files <IfModule mod_deflate. c> AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x- javascript text/css BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\. 0 [678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \. (?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=! dont- vary </IfModule> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/json

                        Désactiver l'accès à certains scripts

                        Pour fonctionner, WordPress utilise des scripts situés dans le répertoire wp-includes . Cependant, il n'y a aucune raison d'y accéder directement. Utilisez ce code pour limiter l'accès :

                         # Block the use of certain scripts RewriteEngine On RewriteBase / RewriteRule ^wp- admin/includes/ - [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]

                        Protection contre les injections de fichiers

                        Les pirates peuvent essayer d'envoyer des fichiers à votre serveur pour prendre le contrôle de votre site Web. Pour jeter une clé sur leur chemin, vous pouvez inclure ce code dans votre fichier .htaccess :

                         # Protection against file injections 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]

                        Protection contre les autres menaces

                        Sur Facebook, Richard m'a dit qu'il était possible de se protéger contre le clickjacking et autres menaces en ajoutant quelques lignes dans le fichier .htaccess .

                        Pour votre information, le clickjacking est une technique qui permet de faire croire à un visiteur qu'il se trouve sur votre site Web, alors qu'il n'y est pas, en utilisant des balises frame ou iframe .

                        Ainsi, le code suivant vous aide à vous protéger contre le détournement de clics, combat d'autres menaces comme MIME Sniffing et bloque le contenu en cas d'attaque XSS (qui injectera du HTML ou du JavaScript dans des variables mal protégées).

                         # Various protections (XSS, clickjacking and MIME-Type 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>

                        Et voilà, vous venez de passer par tout un tas d'optimisations à intégrer dans le fichier .htaccess situé à la racine du site.

                        Passons à autre chose : de nouveaux morceaux de code pour les dossiers wp-admin , wp-icludes , wp-content et wp-content/uploads .

                        Comment personnaliser le fichier .htaccess dans wp-admin

                        wp-admin est l'antre de votre site web. L'endroit où vous allez écrire des articles, configurer vos menus, configurer votre thème et bien plus encore.

                        Il va sans dire qu'aucune personne non autorisée ne doit entrer dans ce havre. Sinon, méfiez-vous des conséquences.

                        Voici ce que vous pouvez faire pour renforcer la sécurité avec un fichier .htaccess que vous placez dans le dossier wp-admin de votre site Web.

                        Limiter l'accès à l'administration du site Web

                        Seules les personnes disposant des adresses IP répertoriées pourront accéder au dossier wp-admin . Assez pratique pour empêcher les étrangers de se connecter à votre site Web (même s'ils ont le bon mot de passe).

                         <Limit GET POST PUT> order deny,allow deny from all # Alex's IP allow from xxx.xxx.xxx.xxx # Nico's IP allow from xxx.xxx.xxx.xxx # IP of another access point allow from xxx.xxx.xxx.xxx </Limit>

                        Ajouter une deuxième authentification

                        Lorsque vous vous connectez à l'administrateur d'un site Web WordPress, vous utilisez un identifiant et un mot de passe. Eh bien, il est possible d'en ajouter un second via le fichier .htaccess , et un autre fichier.

                        Tout d'abord, créez un fichier nommé .htpasswd dans le répertoire wp-admin et insérez-y une paire de nom d'utilisateur et de mot de passe. Utilisez ce site Web pour vous guider :

                        L'interface de l'outil Générateur HTPasswd.

                        Entrez le nom d'utilisateur que vous souhaitez utiliser dans le premier champ et votre mot de passe dans le second, puis cliquez sur "Générer le fichier .htpasswd ".

                        Copiez ensuite la ligne qui apparaîtra dans le fichier .htpasswd . Si vous devez créer plusieurs utilisateurs, répétez le processus et ajoutez la nouvelle paire nom d'utilisateur/mot de passe dans une nouvelle ligne.

                        Par exemple, vous pouvez obtenir ce type de fichier :

                         alex:ieS547B1UxY8M jack:rSqEJf0SeTlRs
                        Contenu factice d'un fichier .htpasswd

                        Ensuite, insérez le code suivant dans le fichier .htaccess :

                         # Second authentication for administration <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> AuthName "Login to the administration" AuthType Basic AuthUserFile "/full/path/to/the/file/.htpasswd" Require valid-user

                        La partie délicate de cette opération consiste à obtenir le chemin complet vers le fichier .htpasswd . Pour le trouver à coup sûr, créez un fichier info.php et insérez le code suivant :

                         <?php echo "Path to copy: " . realpath('.htaccess'); ?>
                        Placez le fichier info.php dans wp-admin

                        Allez sur yourwebsite.com/wp-admin/info.php et vous obtiendrez le chemin réel du fichier .htpasswd à placer dans le fichier .htaccess . Supprimez le fichier info.php une fois que vous obtenez le bon chemin.

                        Si vous insérez ce code tel quel, les requêtes AJAX ne fonctionneront plus. Utilisez l'extrait ci-dessous pour résoudre le problème :

                         AuthType Basic AuthName "Protected page" AuthUserFile /home/.htpasswd Require valid-user <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> <Files admin-post.php> Order allow,deny Allow from all Satisfy any </Files> <Files "\.(css|gif|png|js)$"> Order allow,deny Allow from all Satisfy any </Files>
                        Placez le fichier info.php dans wp-admin

                        Si vous avez compris tout ce que je viens de mentionner, vous devriez avoir mis en place une double authentification pour accéder à l'administration de WordPress.

                        Passons à la partie suivante.

                        Comment personnaliser le fichier .htaccess dans wp-includes ?

                        Bloquer l'accès direct aux fichiers PHP

                        Créez un fichier .htaccess dans wp-includes et collez-y le code suivant pour empêcher le chargement direct des fichiers PHP.

                         # Blocks direct access to PHP files (Thanks to Sucuri) <Files wp-tinymce.php> allow from all </Files> <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch> <Files wp-tinymce.php> Allow from all </Files> <Files ms-files.php> Allow from all </Files>

                        Le code ci-dessus est fourni par le plugin Sucuri.

                        Comment personnaliser le fichier .htaccess dans wp-content ?

                        Bloquer l'accès direct aux fichiers PHP

                        Pour le dossier wp-content , le code est similaire, il a juste les exceptions supprimées :

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\.(?i:php)$"> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core.c> Require all denied </IfModule> </FilesMatch>

                        Comment personnaliser le fichier .htaccess dans wp-content/uploads ?

                        Bloquer l'accès direct aux fichiers PHP

                        Avec ce même code, protégez le dossier où est stocké le média pour éviter que les fichiers PHP ne soient exécutés par quelqu'un de l'extérieur (un hacker méchant par exemple).

                         # Blocks direct access to PHP files (Thanks to Sucuri) <FilesMatch "\. (?i:php)$"> <IfModule ! mod_authz_core.c> Order allow,deny Deny from all </IfModule> <IfModule mod_authz_core. c> Require all denied </IfModule> </FilesMatch>

                        Récapitulatif final sur le fichier .htacess dans WordPress

                        Comme vous l'avez découvert tout au long de ce guide, le fichier .htaccess est un outil très puissant pour configurer le serveur de votre site Web.

                        Lorsqu'il est manipulé avec soin et prudence, il peut améliorer la sécurité, les performances, le référencement ou même l'expérience utilisateur de votre site Web.

                        Le fichier #htaccess de votre site #WordPress est un outil puissant. Découvrez comment cela fonctionne et configurez-le comme un chef avec les conseils de WPMarmite.

                        Cliquez pour tweeter

                        Encore une fois, je vous recommande de toujours conserver une sauvegarde de votre fichier .htaccess d'origine pour effectuer une réinitialisation en cas de problème.

                        Procédez à vos modifications avec une extrême prudence (je vous aurai prévenu !). Des erreurs ou incompatibilités peuvent survenir selon l'hébergeur de votre site.

                        Bien que beaucoup de choses aient été couvertes dans cet article, il est possible d'aller plus loin dans la configuration de votre .htaccess , en utilisant diverses ressources :

                        • La documentation WordPress et la documentation Apache (le logiciel qui exécute votre serveur).
                        • Le blog Perishable Press, qui a même un livre payant sur le sujet.

                        Avant de dire au revoir, j'aimerais avoir votre avis dans les commentaires. Avez-vous personnalisé votre fichier .htaccess ?

                        Et surtout, n'hésitez pas à partager les extraits de code que vous avez l'habitude d'utiliser avec d'autres lecteurs.