Selon wikipédia « Les fichiers .htaccess sont des fichiers de configuration des serveurs HTTP Apache. Leur particularité est leur emplacement : dans les répertoires de données du site Web, au lieu du répertoire de configuration d’Apache. La portée de leur configuration est limitée au contenu du répertoire où ils résident. Cette particularité apporte deux principaux avantages : leur gestion peut être déléguée à des utilisateurs n’ayant pas le droit de gérer le serveur HTTP lui-même ; les modifications sont prises en compte sans qu’il soit nécessaire de redémarrer le serveur HTTP ».
Les fichiers .htaccess sont notamment utilisés pour configurer des droits d’accès, des redirections d’URL, des messages d’erreur personnalisés, et des associations d’extension de nom de fichier à un type MIME.
Avec un fichier .htaccess on peut :
- Améliorer la sécurité d’un site web
- Augmenter la vitesse de chargement de votre blog
- Mettre en place des redirections 301
- Limiter le spam
- Et même faire des petites blagues :)
Pour personnaliser le code d’un fichier .htaccess
c’est assez simple , mais avant toute modification, sauvegardez le contenu initial de votre fichier .htaccess (En cas de problème, vous pourrez restaurer facilement le contenu d’origine)
. Pour ce faire, vous pouvez :
- Dupliquer le fichier
.htaccess
de votre serveur en un fichier.htaccess-initial
- Copier le contenu du fichier dans un fichier texte sur votre ordinateur
Pour effectuer des modifications, suivez la procédure suivante :
- Ouvrez le fichier dans votre éditeur de code
- Placez vos ajouts dans le fichier
- Sauvegardez le tout
- Actualisez votre site pour voir si tout va bien
L’actualisation de votre site est très importante car il faut être certain que le code ajouté ne pose pas de problème. En général, une erreur 500 « Internal Server Error » s’affichera à l’écran en cas d’erreur , dans ce cas, il suffit d’annuler vos modifications et sauvegardez à nouveau et tout devrait rentrer dans l’ordre.
Comment créer un fichier .htaccess optimisé?
Logiquement, votre site devrait avoir au moins un fichier .htaccess
, celui situé à la racine de votre site. Vous pouvez le modifier à l’aide de votre éditeur de code.
Exemple de fichier .htaccess pour WordPress
En cas de besoin de recréer le contenu d’un fichier .htaccess qui aurait été corrompu, vous pouvez vous baser sur cette structure (pour un WordPress simple, pas une installation multisite) :
# 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
Pour une installation multisite WordPress, le .htaccess de base ressemblera plus à la version ci-après:
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]
Ces règles doivent être placées dans votre fichier .htaccess principal, au niveau de la racine de votre site.
Il faut commenter vos code .htaccess pour pouvoir retrouver et comprendre ce que vous lui avez ajouté, même plusieurs mois plus tard. Les commentaires se font ligne par ligne, chaque ligne commençant par un signe #. Si votre commentaire prend plus de place qu’une seule ligne, vous devez de nouveau ajouter un #. Essayez de vous limiter à des caractères alphanumériques.
Astuces et codes pour votre fichier .htaccess
- Protection de « wp-config.php » et vos fichiers sensibles
Vous n’avez sûrement pas envie que des personnes mal intentionnées aient accès à vos fichiers config.php, error_logs, php.ini ou encore htpasswds.
Pour renforcer leur sécurité,c’est simple, ajoutez les lignes suivantes à votre fichier .htaccess :
<pre><FilesMatch "^.*(error_log|wp-config.php|php.ini|.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch>
- Protéger le répertoire « wp-content »
Avec les lignes suivantes, vous pouvez refuser l’accès direct à vos fichiers dont l’extension est en .php. Cela renverra une erreur 403 (accès refusé). Attention, cet ajout peut perturber certains thèmes ou plugins.
<pre>RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /wp-content/.*$ [NC] RewriteCond %{REQUEST_FILENAME} !^.+flexible-upload-wp25js.php$ RewriteCond %{REQUEST_FILENAME} ^.+.(php|html|htm|txt)$ RewriteRule .* - [F,NS,L]
- Bannir quelqu’un de votre blog
Un commentateur devient ingérable ? Quelqu’un essaie de forcer l’accès à votre tableau de bord ? Vous avez récupéré l’adresse IP d’un troll ou souhaitez bannir celle d’un site tiers qui perturbe votre travail ? Ajoutez ces lignes au fichier .htaccess en ajoutant les adresses IP que vous souhaitez blacklister.
<pre><Limit GET POST> order allow,deny deny from 123.456.78.9 deny from 987.654.32.1 allow from all </Limit>
- Créer des redirections 301
Vous souhaitez rediriger un article vers une nouvelle URL ? Cela peut être très utile lorsque vous mettez à jour votre contenu, Il vous suffit d’insérer ce snippet dans votre fichier .htaccess en remplaçant avec les bonnes URL.
</pre> <pre>redirect 301 /super-ancien-article-a-rediriger http://www.votresite.com/nouvel-article</pre> <pre>
- Créer des redirections 301 d’un ancien domaine vers un nouveau domaine
Vous souhaitez passer de votre « vieuxdomaine.fr » à votre « nouveaudomaine.fr » et n’avez pas modifié les noms des dossiers et fichiers ?
Ajoutez ces lignes au .htaccess de votre installation WordPress :
</pre> <pre># redirect vieux domaine vers nouveau domaine RewriteEngine On RewriteRule ^(.*)$ http://www.nouveaudomaine.fr/$1 [R=301,L]</pre> <pre>
N’oubliez pas de vérifier que tout va bien sur votre site Internet après la mise en place de cette redirection.
- Protéger le fichier .htaccess lui-même
Après avoir passé autant de temps à optimiser et sécuriser votre site Internet, la dernière chose dont vous rêvez est sûrement celle de vous faire pirater votre fichier .htaccess.
Pour renforcer sa protection, ajoutez-lui les lignes suivantes :
</pre> <pre><Files ~ “^.*.([Hh][Tt][Aa])”> order allow,deny deny from all satisfy all </Files></pre> <pre>
Si vous souhaitez aller encore plus loin, vous pouvez aussi changer le nom du fichier .htaccess.
Vous devrez utiliser la directive AccessFileName et insérer le nouveau nom dans le fichier de configuration de votre serveur, sur le modèle suivant :
<pre># renomme fichiers htaccess AcessFileName ".nouveaunom"
Précision importante : si vous renommez vos fichiers .htaccess, pensez à mettre à jour tous les réglages qui y sont associés, tels que la protection de votre fichier.
- Forcer le téléchargement automatique de certains fichiers
Avez-vous déjà remarqué que selon le site Internet sur lequel vous naviguez, les PDF sont parfois ouverts dans un onglet du navigateur, d’autres fois immédiatement téléchargés ?
Vous pouvez choisir de faire la même chose sur votre site. La ligne suivante vous permet de choisir quels types de fichiers vous souhaitez voir téléchargés automatiquement, plutôt que d’être ouverts dans le navigateur de votre visiteur.
<pre>AddType application/octet-stream .avi .pdf .xls .mp4
Modifiez-la bien sûr avec les extensions choisies.
- Envoyer les visiteurs vers une page de maintenance
Lorsque vous retravaillez votre site Internet, il arrive d’avoir besoin de passer en mode maintenance pour éviter que les visiteurs ne voient vos modifications en direct.
Si les plugins spécialisés font parfois l’affaire, ce n’est pas toujours le cas, notamment lorsque votre site connaît une attaque ou un problème technique qui font naître le célèbre « écran blanc de la mort » (WordPress White Screen of Death).
Dans ce cas, vous ne pouvez pas vous reposer sur un plugin pour rediriger les visiteurs vers une page de maintenance, puisqu’ils ne fonctionneront pas non plus.
C’est là que votre fichier .htaccess entre en jeu.
D’abord, créez votre page personnalisée, nommez-la maintenance.html et chargez-la avec votre client FTP.
Ensuite, modifiez les lignes de code suivantes pour qu’elles soient adaptées à votre site (emplacement de la page, adresse IP, etc.) et insérez-les dans votre .htaccess. Comme vous le voyez, il s’agit d’une redirection 302 pour éviter qu’elle ne soit indexée.
<pre>RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteCond %{REMOTE_ADDR} !^123.123.123.123 RewriteRule $ /maintenance.html [R=302,L]
- Autoriser la mise en cache du navigateur
La mise en cache du navigateur fait partie des opérations qui améliorent les performances de votre site. Une fois autorisée, elle permet aux visiteurs de « garder » des éléments de votre page sans avoir à les recharger lorsqu’ils reviennent sur votre site.
Pour ce faire, vous n’avez qu’à ajouter le code suivant à votre fichier .htaccess :
<pre>## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule> ## EXPIRES CACHING ##
Attention, vérifiez bien que votre plugin de cache ne s’occupe déjà pas de cette fonctionnalité (si vous en avez installé un).
- Autoriser la mise en cache de fichiers
Dans cette même volonté d’améliorer les performances de votre site, voici une méthode complémentaire pour (considérablement) améliorer la vitesse de chargement de votre site en configurant la mise en cache de fichiers.
Modifiez la durée souhaitée pour chaque type de contenu (en secondes) en vous basant sur les exemples suivants :
<pre># cache images et flash pendant un mois <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> # cache texte, css et javascript pour une semaine <FilesMatch ".(js|css|pdf|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> # cache fichiers html et htm pendant un jour <FilesMatch ".(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch>
- Empêcher l’accès à vos répertoires
Pour renforcer la sécurité de votre site WordPress, il peut être intéressant d’empêcher des visiteurs mal intentionnés d’aller se promener dans l’arborescence des répertoires de votre installation.
Pour ce faire, ajoutez les lignes suivantes à .htaccess :
<pre># empeche acces repertoires Options All -Indexes
- Limiter le hotlinking de vos images
Le hotlinking consiste à voler votre bande passante en utilisant une ou plusieurs de vos images sur un site tiers, tout en continuant à utiliser votre hébergement.
Il n’y a pas de solution 100 % efficace pour prévenir ce type de détournement, mais vous pouvez renforcer votre protection en ajoutant ces lignes, à personnaliser en fonction de votre site :
<pre>#limite le hotlinking d'images RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?votresite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?feeds2.feedburner.com/votresite [NC]RewriteRule .(jpg|jpeg|png|gif)$ – [NC,F,L]
Votre fichier .htaccess vous offre des possibilités importantes pour sécuriser votre blog, en contrôler les accès, gérer vos redirections ou encore améliorer vos performances. Cependant, le modifier est souvent intimidant, dans la mesure où le moindre espace ou caractère mal placé peut faire sauter l’ensemble de votre site Internet.
Laisser un commentaire