Fichier WordPress .htaccess : Comment utiliser le fichier .htaccess
Fichier .htaccess WordPress : le fichier .htaccess est un fichier central WordPress important qui est souvent utilisé pour ajouter, modifier et remplacer les configurations au niveau du serveur, la sécurité et les paramètres de performance.
Qu’est-ce qu’un fichier .htaccess ?
Un fichier .htaccess est le cœur de votre site web, qui contient des règles de base qui régissent toutes les communications avec votre WordPress et votre hébergement web. Plus précisément, vous pouvez utiliser le fichier .htaccess dans WordPress pour des tâches telles que le contrôle de l’accès aux pages Web, l’amélioration de la sécurité et des performances.
Mais attention !
Un seul point mal placé (.) peut potentiellement faire planter votre site. Par conséquent, avant d’apporter des modifications au fichier .htaccess, enregistrez d’abord le fichier dans un emplacement externe. Si quelque chose ne va pas ou si vous avez besoin d’aide, contactez votre fournisseur d’hébergement Web ou un webmaster averti.
Le fichier .htaccess par défaut dans WordPress
Le fichier .htaccess est fourni avec chaque installation WordPress et se trouve généralement dans le répertoire racine. Compte tenu de l’importance du fichier, il est souvent caché (il n’a pas d’extension de fichier) et n’apparaît pas dans les listes de fichiers et de dossiers, principalement parce que le gestionnaire de fichiers le masque pour des raisons de sécurité.
Dans de rares cas, il est possible qu’il n’y ait pas de fichier .htaccess dans le dossier racine. Si c’est le cas pour vous, vous pouvez créer un fichier .htaccess dans WordPress à l’aide du Bloc-notes (ou de tout éditeur de texte de votre choix) et l’enregistrer sous le nom « .htaccess ». Réglez le « Type de fichier » sur « Tous les fichiers » et téléchargez-les dans le répertoire racine de votre installation WordPress.
IMPORTANT: Assurez-vous que le nom du fichier n’est PAS « htaccess » sans (.) – mais .htaccess avec un point (.) au début.
Voici à quoi ressemble le fichier .htaccess par défaut pour WordPress :
# 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
Si le fichier .htaccess n’existe pas déjà dans votre répertoire racine, vous pouvez le créer dans le tableau de bord WordPress sous : -> Paramètres -> Permaliens, puis cliquez sur « Enregistrer les modifications » comme indiqué dans l’image ci-dessous. Cela générera le fichier .htaccess par défaut pour WordPress dans le répertoire racine.
Le fichier .htaccess par défaut de WordPress ne gère que les permaliens de votre site Web. Cependant, cela peut être modifié et des règles supplémentaires peuvent être ajoutées. Cela vous permet de contrôler la façon dont le serveur Web Apache traite les demandes liées aux opérations.
Comment modifier un fichier .htaccess dans WordPress ?
Pour modifier le fichier .htaccess dans WordPress, allez dans votre répertoire racine. Vous pouvez le faire via le gestionnaire de fichiers fourni par votre fournisseur ou hébergeur WordPress, ou via un client FTP comme FileZilla.
Connectez-vous à votre compte d’hébergement Web et accédez au dossier « public_html » et recherchez le fichier .htaccess dans l’installation de WordPress.
Faites un clic droit sur le fichier, puis cliquez sur l’option « Afficher/Modifier » pour l’ouvrir dans votre éditeur de texte préféré. Modifiez les modifications nécessaires et enregistrez le fichier.
Une autre façon d’éditer le fichier WordPress .htaccess est d’en faire une copie sur le système local. Lorsque vous avez terminé, remplacez la version en direct via FTP ou le gestionnaire de fichiers.
Redirections WordPress .htaccess
Comme indiqué ci-dessus, le fichier .htaccess dans WordPress peut être utilisé pour contrôler les redirections de sites Web. Voici quelques règles couramment utilisées pour vous aider à configurer et à contrôler les redirections sur vos sites Web WordPress.
Redirection 301 (permanente)
Une redirection 301 indique aux moteurs de recherche qu’une URL a été déplacée de manière permanente vers un autre emplacement. Cela ne se limite pas aux URL, et vous pouvez rediriger un dossier, une page ou même un site Web entier. L’extrait de code suivant redirige le alteseite.html vers neueseite.html :
Redirect 301 /alteseite.html http://www.ihrewebsite.com/neueseite.html
Redirection 302 (temporaire)
Contrairement au 301, la redirection 302 indique aux moteurs de recherche que cette redirection est temporaire. C’est un excellent moyen de ralentir (voire d’empêcher) les remaniements des SERP. Ajoutez la ligne suivante au fichier .htaccess :
Redirect 302 /alteseite.html http : //www.ihrewebsite.com/neueseite.html
Forcer l’URL sur www
La règle .htaccess suivante dans WordPress redirige tous les visiteurs de example.com vers : www.example.com.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
Forcer l’URL vers une version non-www
La règle .htaccess suivante redirige tous les visiteurs de www.example.com vers example.com.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Appliquer les HTTPs
La règle suivante dans le fichier .htaccess de WordPress oblige tous vos visiteurs à utiliser HTTPS au lieu de HTTP pour toutes les URL.
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Appliquer HTTP
La règle suivante dans le fichier htaccess pour WordPress oblige vos visiteurs à utiliser HTTP au lieu de HTTPS pour toutes les URL.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^https$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}</IfModule>
Rediriger le domaine vers le sous-répertoire
La règle suivante redirige l’URL racine du domaine vers le sous-répertoire de votre choix.
RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/sub-directory-name/
RewriteRule (.*) /subdir/$1
URL de redirection
Si vous avez deux domaines desservant le même site Web, la règle .htaccess mentionnée ci-dessous redirigera un domaine vers l’autre.
Redirect 301 / http://www.mynewwebsite.com/
Conseils de sécurité WordPress .htaccess
Le fichier .htaccess peut également être utilisé pour sauvegarder les répertoires WordPress et les fichiers WordPress sur le serveur. Voici quelques règles très importantes que les utilisateurs peuvent appliquer pour sécuriser les sites Web WordPress.
Comment puis-je protéger le .htaccess ?
Le fichier .htaccess peut potentiellement contrôler l’ensemble du site Web. Dans cet esprit, il est primordial que le .htaccess soit protégé contre les utilisateurs non autorisés. Vous pouvez utiliser l’extrait de code suivant pour restreindre l’accès à tous les utilisateurs non autorisés.
Copiez simplement l’extrait et collez-le dans le fichier .htaccess.
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
Comment puis-je restreindre l’accès au panneau d’administration WordPress ?
Imaginez le scénario (terrible) où quelqu’un accède à votre panneau d’administration WordPress. Une telle attaque peut causer des dommages extrêmes ou détruire complètement votre site web.
Pour éviter que cela ne se produise, vous pouvez restreindre l’accès au panneau d’administration WordPress à une ou plusieurs adresses IP spécifiques.
Pour ce faire, créez un autre fichier .htaccess et collez-y l’extrait de code suivant. Ensuite, téléchargez-le dans le dossier « www.yourwebsite.com/wp-admin/ » via FTP.
# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</Limit>
Indice: N’oubliez pas de remplacer « xx.xx.xx.xx » dans le code ci-dessus par votre adresse IP autorisée.
Désormais, si quelqu’un ne figure pas sur la liste d’adresses IP approuvées, il ne pourra pas se connecter à votre site. Au lieu de cela, l’erreur suivante s’afficherait :
« erreur de serveur interne »
Comment puis-je sauvegarder des fichiers importants ?
Vous pouvez utiliser le fichier .htaccess dans WordPress pour protéger des fichiers importants tels que les journaux d’erreurs, les wp-config.php et php.ini. Utilisez l’extrait de code suivant :
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>
Comment puis-je protéger le fichier wp-config.php ?
Dans votre installation WordPress, le fichier est wp-config.php le fichier qui stocke l’hébergement, la base de données et d’autres informations d’identification importantes. Il est donc existentiel que ce fichier soit protégé de tout accès non autorisé.
Pour ce faire, il suffit de copier les lignes suivantes et de les coller dans votre fichier .htaccess.
<files wp-config.php>
order allow,deny
deny from all
</files>
Comment puis-je protéger le dossier /wp-content/ ?
Le dossier « wp-content » contient tous les fichiers importants de votre thème, les plugins, les médias et les fichiers mis en cache. C’est pourquoi ce répertoire est la cible principale des attaques de pirates et les spammeurs aiment particulièrement l’utiliser. Pour protéger ce dossier contre tout accès non autorisé, créez un fichier .htaccess séparé dans le dossier wp-content. Ensuite, copiez et collez l’extrait de code suivant dans le fichier :
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>
La règle ci-dessus ne permettrait aux utilisateurs de télécharger que des fichiers avec les extensions autorisées (XML, CSS, JPG, JPEG, PNG, GIF et JavaScript). Tous les autres types de fichiers seront rejetés.
Comment puis-je protéger les fichiers wp-includes ?
Certaines zones de votre installation WordPress ne devraient jamais être accessibles à l’utilisateur moyen. Il est toujours recommandé de bloquer tout accès à ces fichiers. Vous pouvez configurer les restrictions d’accès en ajoutant l’extrait de code suivant à votre fichier .htaccess.
<IfModule mod_rewrite.c>
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]
</IfModule>
Comment puis-je désactiver l’exécution de PHP ?
Restreindre l’exécution du code PHP pour tous les répertoires ou certains répertoires du site Web WordPress est une pratique de sécurité importante. Créez un fichier htaccess dans un dossier où vous ne souhaitez pas exécuter de scripts PHP et ajoutez l’extrait suivant.
<Files *.php>
deny from all
</Files>
Certains dossiers WordPress tels que /wp-includes/ et /wp-content/uploads/ sont accessibles en écriture par défaut. Ce type d’autorisation permet aux utilisateurs de télécharger des médias ou différents types de fichiers. Il est toujours recommandé de désactiver l’exécution de PHP dans ces répertoires.
Comment puis-je restreindre l’accès aux fichiers ?
Restreindre l’accès à wp-admin est une exigence importante, surtout lorsque plusieurs membres de l’équipe sont impliqués dans la gestion et la mise à jour du site.
En pratique, cela signifie que les utilisateurs ne peuvent pas accéder aux fichiers sensibles tels que les plugins, les thèmes et les dossiers d’actifs.
.htaccess est un excellent moyen de protéger l’accès direct à l’édition de fichiers PHP à partir de plugins et de thèmes, ce qui rend plus difficile pour les pirates d’injecter du code malveillant. Pour ce faire, il suffit d’ajouter les lignes suivantes au fichier :
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/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/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
Comment puis-je fournir une protection contre l’injection pour les scripts ?
L’injection de script est une technique notoire dans laquelle l’attaquant « injecte » un code malveillant dans le code du site Web afin d’extraire des données ou de prendre le contrôle du site Web. L’ajout de l’extrait suivant au fichier WordPress « .htaccess » peut protéger votre site web contre de telles attaques.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
Comment puis-je bloquer mon adresse IP ?
Si quelqu’un abuse de votre site, spamme continuellement ou commence à faire des tentatives de piratage, son adresse IP sera visible dans la zone d’administration de WordPress. Pour bloquer l’IP, il suffit d’utiliser le fichier .htaccess pour contrôler l’accès à votre site web. Copiez simplement l’extrait suivant et collez-le dans le fichier .htaccess. Cela résoudra immédiatement ce problème particulier. N’oubliez pas de remplacer l’adresse IP de l’échantillon par celle du spammeur.
<Limit GET POST>
order allow,deny
deny from 123.456.78.9
allow from all
</Limit>
Comment puis-je refuser l’accès à certains fichiers ?
Vous souhaitez restreindre l’accès à des fichiers spécifiques ? Aucun problème. Utilisez la règle .htaccess suivante pour bloquer l’accès à des fichiers individuels.
<files your-file-name.txt>
order allow,deny
deny from all
</files>
Comment puis-je désactiver la recherche dans l’annuaire ?
L’accès non autorisé aux fichiers et dossiers du site Web est un risque de sécurité majeur qui peut potentiellement paralyser l’ensemble du site Web.
L’ajout de l’extrait suivant à votre fichier .htaccess permet de contrôler et/ou de désactiver l’accès aux répertoires du site Web pour tous les utilisateurs.
# disable directory browsing
Options All -Indexes
Règles htaccess pour l’amélioration des performances
Le fichier .htaccess dans WordPress peut également être utilisé pour améliorer les performances/performances de votre site web. Il suffit de copier et coller les extraits pertinents dans le fichier .htaccess
Comment puis-je activer le cache du navigateur ?
Le cache du navigateur est un espace de stockage temporaire sur votre système pour que les fichiers téléchargés à partir de votre navigateur Web s’affichent correctement sur les sites Web. Ces fichiers peuvent contenir du HTML, du CSS, du JavaScript, ainsi que des images et d’autres contenus multimédias.
Dans le fichier .htaccess de WordPress, vous pouvez définir des règles concernant la durée de mise en cache de certains fichiers. Les limites d’expiration suivantes sont définies en fonction de l’usage courant. Pour activer la mise en cache du navigateur, collez l’extrait de code suivant dans le fichier htaccess.
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# Favicon (cannot be renamed!)
ExpiresByType image/x-icon "access plus 1 week"
# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# JavaScript
ExpiresByType application/javascript "access plus 1 year"
# Manifest files
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
# Web fonts
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>
Comment puis-je activer la compression Gzip ?
Gzip est un algorithme de compression extrêmement puissant qui trouve des chaînes similaires dans un fichier texte et les remplace temporairement. Cela réduira considérablement la taille globale du fichier. Pour cette raison, Gzip est souvent utilisé comme un outil important pour optimiser la vitesse de chargement des pages du site Web .
La compression Gzip est souvent utilisée au niveau du serveur, et de nombreux fournisseurs d’hébergement l’activent par défaut. Dans certains plugins de cache, tels que « WP Rocket », le code correspondant est automatiquement inséré. Vous pouvez ensuite le vérifier dans votre fichier .htaccess. Toutefois, si, pour une raison quelconque, cela ne fonctionne pas, vous pouvez ajouter l’extrait de code suivant au fichier .htaccess.
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
Comment puis-je contrôler/restreindre le hotlinking d’image ?
La liaison à chaud d’image peut affecter considérablement l’utilisation de la bande passante, car chaque fois qu’une ressource externe demande une image, la bande passante de votre serveur est utilisée pour servir l’image.
Pour réduire la consommation de bande passante due aux liens d’image, vous pouvez ajouter l’extrait de code suivant au fichier .htaccess :
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
htaccess pour WordPress Multisite (WPMU)
Le fichier .htaccess par défaut pour WordPress Multisite est légèrement différent du fichier .htaccess par défaut de WordPress.
htaccess par défaut pour les sous-dossiers WPMU
Si votre réseau multisite WordPress est basé sur des sous-dossiers, le fichier .htaccess par défaut devrait ressembler à ceci :
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]
Standard htaccess pour les sous-domaines WPMU
Si votre réseau multisite WordPress est basé sur des sous-domaines, le fichier .htaccess par défaut devrait ressembler à ceci :
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Résultat
En ce qui concerne la configuration du serveur, le fichier WordPress .htaccess est l’un des fichiers les plus importants de votre serveur. Il est souvent utilisé pour configurer votre serveur web et pour sécuriser et optimiser différentes zones de votre site web.