Modifier le fichier .htaccess de votre site peut sembler intimidant pour les débutants sous WordPress. Mais d’après notre expérience, c’est un outil que vous pouvez utiliser pour améliorer les performances, la sécurité et le référencement de votre site.
Vous pouvez considérer ce fichier comme un panneau de contrôle permettant de définir avec précision les Réglages du serveur de votre site sans avoir besoin d’être un magicien du codage.
Dans cet article, nous allons vous afficher quelques astuces .htaccess utiles pour WordPress qui vous permettront de mieux contrôler votre présence en ligne.
Qu’est-ce que le fichier .htaccess et comment le modifier ?
Le fichier .htaccess est un fichier de configuration du serveur web Apache. Il s’agit d’un fichier texte qui vous permet de définir des règles à suivre par votre serveur pour votre site web WordPress.
WordPress utilise le fichier .htaccess pour générer une structure d’URL favorable au référencement. Cependant, ce fichier peut faire bien plus que de stocker les paramètres des permaliens.
Le fichier .htaccess se trouve dans le dossier racine de votre site WordPress. Vous devrez vous connecter à votre site web à l’aide d’un client FTP ou du gestionnaire de fichiers cPanel pour le modifier.
Si vous ne trouvez pas votre fichier .htaccess, consultez notre guide sur la façon de trouver le fichier .htaccess dans WordPress.
Avant de modifier votre fichier .htaccess, il est important d’en télécharger une copie sur votre ordinateur à titre de sauvegarde. Vous pourrez utiliser ce fichier en cas de problème.
Ceci étant dit, voyons quelques astuces .htaccess utiles pour WordPress que vous pouvez essayer :
- Protect Your WordPress Admin Area
- Password Protect WordPress Admin Folder
- Disable Directory Browsing
- Disable PHP Execution in Some WordPress Directories
- Protect Your WordPress Configuration wp-config.php File
- Setting Up 301 Redirects Through .htaccess File
- Ban Suspicious IP Addresses
- Disable Image Hotlinking in WordPress Using .htaccess
- Protect .htaccess From Unauthorized Access
- Increase File Upload Size in WordPress
- Disable Access to XML-RPC File Using .htaccess
- Blocking Author Scans in WordPress
1. Protéger la zone d’administration de WordPress
Vous pouvez utiliser .htaccess pour protéger votre zone d’administration WordPress en limitant l’accès à des adresses IP sélectionnées uniquement.
Il suffit de copier et de coller cet extrait de code dans votre fichier .htaccess :
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>
N’oubliez pas de remplacer les valeurs xx par votre propre adresse IP. Si vous utilisez plusieurs adresses IP pour accéder à l’internet, veillez à les ajouter également.
Pour des instructions détaillées, consultez notre guide sur la façon de limiter l’accès à l’administration de WordPress à l’aide de .htaccess.
2. Protéger par mot de passe le dossier d’administration de WordPress
Si vous accédez à votre site WordPress à partir de plusieurs Emplacements, y compris des endroits publics, la limitation de l’accès à des adresses IP spécifiques peut ne pas vous convenir.
Vous pouvez utiliser le fichier .htaccess pour ajouter une protection supplémentaire par mot de passe à votre zone d’administration WordPress.
Tout d’abord, vous devez générer un fichier .htpasswds. Vous pouvez facilement en créer un en utilisant ce générateur en ligne.
Téléversez ce fichier .htpasswds en dehors de votre répertoire Web accessible au public ou du dossier /public_html/
. Un bon chemin serait :
/home/user/.htpasswds/public_html/wp-admin/passwd/
Ensuite, créez un fichier .htaccess et téléversez-le dans le répertoire /wp-admin/
, puis ajoutez-y le code suivant :
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Outil d’importation : N’oubliez pas de remplacer le chemin AuthUserFile
par le chemin de votre fichier .htpasswds et d’ajouter votre propre identifiant.
Pour des instructions détaillées, consultez notre guide sur la protection par mot de passe du dossier d’administration de WordPress.
3. Désactiver la navigation dans les répertoires
De nombreux experts en sécurité WordPress recommandent de désactiver la navigation dans les répertoires. Lorsque la navigation dans les répertoires est activée, les pirates peuvent consulter la structure des répertoires et des fichiers de votre site pour trouver un fichier vulnérable.
Pour désactiver la navigation dans les répertoires sur votre site, vous devez ajouter la ligne suivante à votre fichier .htaccess :
Options -Indexes
Pour en savoir plus sur ce Sujet, consultez notre guide sur la désactivation de la navigation dans les répertoires sur WordPress.
4. Désactiver l’exécution de PHP dans certains répertoires de WordPress
Il arrive que des pirates s’introduisent dans un site WordPress et y installent une porte dérobée. Ces fichiers de porte dérobée sont souvent déguisés en fichiers du cœur de WordPress et sont placés dans les dossiers /wp-includes/
ou /wp-content/uploads/
.
Un moyen plus simple d’améliorer la sécurité de WordPress est de désactiver l’exécution de PHP pour certains répertoires de WordPress.
Vous devez créer un fichier .htaccess vierge sur votre ordinateur et y coller le code suivant :
<Files *.php>
deny from all
</Files>
Enregistrez le fichier, puis téléversez-le dans vos répertoires /wp-content/uploads/
et /wp-includes/
.
En savoir plus, consultez notre tutoriel sur la désactivation de l’exécution de PHP dans certains répertoires WordPress.
5. Protégez votre fichier de configuration WordPress wp-config.php
Le fichier le plus important du répertoire racine de votre site WordPress est probablement le fichier wp-config.php. Il contient des informations sur votre base de données WordPress et sur la manière de s’y connecter.
Pour protéger votre fichier wp-config.PHP contre tout accès non autorisé, il vous suffit d’ajouter ce code à votre fichier .htaccess :
<files wp-config.php>
order allow,deny
deny from all
</files>
6. Réglages des redirections 301 via le fichier .htaccess
L’utilisation de redirections 301 est la façon la plus simple/simple d’utilisation pour indiquer à vos utilisateurs/utilisatrices que le contenu a été déplacé vers un nouvel Emplacement. Si vous souhaitez gérer correctement vos redirections 301 poste par poste, consultez notre guide sur la façon de configurer les redirections dans WordPress.
En revanche, si vous souhaitez configurer rapidement des redirections, il vous suffit de coller ce code dans votre fichier .htaccess :
Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/
7. Interdire les adresses IP suspectes
Votre site reçoit-il un nombre anormalement élevé de demandes en provenance d’une adresse IP spécifique ? Vous pouvez facilement bloquer ces demandes en bloquant l’adresse IP dans votre fichier .htaccess.
Il suffit d’ajouter le code suivant à votre fichier .htaccess :
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
N’oubliez pas de remplacer xx par l’adresse IP que vous souhaitez bloquer.
8. Désactiver les liens hypertextes vers des images sur WordPress en utilisant .htaccess
Les liens directs d’autres sites vers les images de votre site peuvent ralentir votre site WordPress et dépasser votre limite de bande passante. Ce n’est pas un gros problème pour la plupart des petits sites. Cependant, si vous gérez un site populaire ou un site avec beaucoup de photos, alors cela pourrait devenir une préoccupation sérieuse.
Vous pouvez empêcher le hotlinking des images en ajoutant ce code à votre fichier .htaccess :
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Ce code permet uniquement l’affichage des images si la demande provient de WPBeginner.com ou de Google.com. N’oubliez pas de remplacer WPBeginner.com par votre propre nom de domaine.
Pour plus de moyens de protéger vos images, consultez notre guide sur les moyens de prévenir le vol d’images sur WordPress.
9. Protéger .htaccess des accès non autorisés
Comme vous l’avez vu, le fichier .htaccess permet de faire beaucoup de choses. En raison du pouvoir et du contrôle qu’il exerce sur votre serveur web, il est important de le protéger contre les accès non autorisés des pirates informatiques.
Il suffit d’ajouter le code suivant à votre fichier .htaccess :
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
10. Augmenter la taille du téléversement des fichiers dans WordPress
Il existe différentes façons d’augmenter la limite de la taille de téléversement des fichiers dans WordPress. Cependant, pour les utilisateurs/utilisatrices sur un hébergement mutualisé, certaines de ces méthodes ne fonctionnent pas.
L’une des méthodes qui a fait ses preuves auprès de nombreux utilisateurs/utilisatrices consiste à ajouter le code suivant à leur fichier .htaccess :
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Ce code indique simplement à votre serveur web d’utiliser ces valeurs pour augmenter la taille de l’outil téléversé ainsi que le temps d’exécution maximum dans WordPress.
11. Interdire l’accès au fichier XML-RPC à l’aide de .htaccess
Chaque installation de WordPress est accompagnée d’un fichier appelé xmlrpc.php. Ce fichier permet à des applications tierces de se connecter à votre site WordPress. La plupart des experts en sécurité de WordPress conseillent de désactiver cette fonctionnalité si vous n’utilisez pas d’applications tierces.
Il y a plusieurs façons de le faire. L’une d’entre elles consiste à ajouter le code suivant à votre fichier .htaccess :
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
En savoir plus, consultez notre guide sur la désactivation de XML-RPC dans WordPress.
12. Bloquer les auteurs/autrices dans WordPress
Une technique courante utilisée dans les attaques par force brute consiste à exécuter des analyses d’auteurs/autrices sur un site WordPress, puis à tenter de déchiffrer les mots de passe de ces identifiants.
Vous pouvez bloquer ces publicités en ajoutant le code suivant à votre fichier .htaccess :
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
En savoir plus, consultez notre article sur la façon de décourager les attaques par force brute en bloquant les scans des auteurs/autrices dans WordPress.
Nous espérons que cet article vous a aidé à apprendre les astuces .htaccess les plus utiles pour WordPress. Vous pouvez également consulter notre guide sur la façon d’effectuer un audit de sécurité WordPress et notre choix d’experts des meilleures extensions de protection de contenu WordPress.
Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Simeon
Thanks so much for this. Very helpful!
WPBeginner Support
Glad it was helpful!
Administrateur
Jackson Andrade
I use password protection for wp-login.php. My customers cannot logout when login.php is protected. Is there a way I can allow customers to logout without calling wp-login.php?action=logout?
Admins too can’t logout, but that’s not an issue.
Woocommerce customer’s logut url is, domain.com/account/customer-logout.
Both call wp-login.php for logout. Customers are asked for htaccess id and password. If there is a workaround, let me know. Thanks
WPBeginner Support
If your site has a login for users who are not your admins then we would not recommend password protecting your wp-login.php for the time being and we do not have a workaround at this time.
Administrateur
Jackson Andrade
Thanks for that Info. Hope Wordpress adds a feature in future where it won’t redirect to login.php for logging out.
HtaccessGuy
Don’t password protect wpadmin if you use AJAX else it’l break stuff.
WPBeginner Support
If you mean for 2 in this list, we’ve added code to allow ajax to continue to work.
Administrateur
Ana
This resolved my issue with above code. Thanks.
Abhi
Please Help Me.
when I paste the following code in .htaccess file it shows an error that is..
It appears you don’t have
permission to access this page.
403 Error. Forbidden.
WPBeginner Support
For resolving the 403 error, you would want to take a look at our guide here: https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-403-forbidden-error-in-wordpress/
Administrateur
Ben
Great article!
Do I need to do this if I already have installed WordFence plugin?
Some people don’t recommend messing with .htaccess file.
Regards.
WPBeginner Support
None of these tricks are required if you don’t want to use them, they are only helpful tools that you can use.
Administrateur
Sebastian
I am not sure what does « Protect .htaccess From Unauthorized Access » mean exactly. Will I be able to access it if I make changes from point 9?
WPBeginner Support
It means if someone knows where your htaccess is located and tries to view the file by putting that address in the url, the browser will not be able to view it.
Administrateur
reus
how to use wp login user name and password (registered user) to access in your no. 2 topic (Password Protect WordPress Admin Folder).
hope to to find answer here.
thank you
WPBeginner Support
If you wanted to use that, you would need to set the information in the htpasswds file
Administrateur
reus
thank you for your response, how to set that information in the htpasswds? thank you
WPBeginner Support
We show the tool to use under tip 2 in the article
Selvakumaran Krishnan
Hai Syed Balkhi,
I have to open a URL which has query parameters and strings like this.
something.example.com/pagename.php?query1=string1&query2=string2&redirecturl=http%3A%2F%2Fsomething.example2.com/something&query3=string3
In the above URL, the problem is %3A%2F%2F. It shows 403 forbidden error. If I remove that part, the URL works fine.
I have searched and tried all the methods like mod rewrite, redirect, etc,. but nothing works.
Is there any way to remove (or) rewrite (or) redirect that encoded part using .htaccess file. That part is in the middle of so many parameters. There are a lot of query parameters before and after that part.
Please share your idea.
Kathrine
This is a great article!! I followed your instructions and everything works fine. I tried to open my admin site using the different IP address and it works great. Thank you for sharing your knowledge.
Mohamed Adel
When Protecting the directory to wp-admin (as explained in 2. Password Protect WordPress Admin Folder), wen I go to any page on the site the massage appears to put password.. How to fix that?
I tried from Cpanel and the same problem happens
Tony
The tip in point 4 for disabling php execution has started to cause issues with the tinymce editor in pages & posts. A php file is included in the tinymce folder that loads the relevant js files. I’ve just removed the htaccess code from the wp-include folder to stop the issue. Maybe there’s another way around this?
Pankaj
Point 5 is not working
(5. Protect Your WordPress Configuration wp-config.php File)
[05-Mar-2018 08:20:03 Etc/GMT] PHP Parse error: syntax error, unexpected ‘<' in /home/—–/public_html/xyz.com/wp-config.php on line 91
WPBeginner Support
Hi Pankaj,
The code in the 5th trick needs to be pasted in .htaccess file and not in wp-config.php file.
Administrateur
Maximilian
Hi there, thank you!
Is ist possible to see the whole .htaccess somewhere? Yes, i could read: « put one line after the other » but still I am not sure.
Is then « # END WordPress° sill the last line or is it somewhere on the top then?
And what do you think about putting « Options -Indexes » on the very end?
Thank you for your answer!
WPBeginner Support
Hi Maximilian,
You can add new lines after the #END WordPress line.
Administrateur
yudi cahyadi
good article..i have a question, after implementing the code in htaccess. Do I need to install a security plugin or not..??
yudi cb(beginner)
WPBeginner Support
Hi Yudi Cahyadi,
Yes, you still need to install a security plugin. Please see our WordPress security guide for more information.
Administrateur
Mario von Gollaz
Hi there, nice article. Is there a way to bulk redirect?
Mario
Kevin
Hi,
Great article and just one question!
Should you place the extra code (especially speed opimisations) before or after the # BEGIN WordPress part?
Regards
Kevin
Brian Wohn
Hi, my theme developer told me this might be in the htaccess, but I don’t know why my wordpress is adding this at the end of all my pages:
Any idea why its adding the « /?v=8f2564d40946 »? I’ve checked my PermaLinks, Slugs, etc and nothing there?
Thanks for your help!
WPBeginner Support
Hi Brian,
It lools like GeoLocation tag added by WooCommerce.
If you are using WooCommerce, then you can turn it off. Go to WooCommerce General Options page and uncheck option ‘Geolocate with page caching support’ option.
Administrateur
Adrienne Warden
Another wonderful post from WP Beginner…Just one tip for all us newbies…While WP Beginner has some of the best tips and trick for WordPress, when it comes to protecting your site, if you are on a shared server, search « support » first. I’ve learned a lot about the backend from reading post on WP Beginner, but the truth of the matter is – I’m no backender and most shared hosting already have a fix in place for these sorts of things…I’m with InMotion and they actual have set up one click solutions for many issues that effect site security. I turned off the file Index right from CPanel…
Still WP Beginner is my go to for WordPress knowledge…You guys are awesome!
Fien
That is a nice article about htaccess. But how to implement this in one file? Can I put all lines after another?
WPBeginner Support
Hi Fien,
You can add them one after another.
Administrateur
Liew CheonFong
Great list. Bookmarked!
Do you have same list for NGINX web server (which does not read .htaccess file) ?
Pattye
There is a way to ban bots from crawling your site the this file. Any suggestions in doing that, besides banning the IP?