Le fichier htaccess pour WordPress

Publié le 10 mai 2011 par 4h18

Le fichier htaccess, « extension » du serveur Apache, est un outil qui peut être puissant, pour peu que vous sachiez l’utiliser à bon escient.

Nous l’avons vu précédemment, que cela soit avec Nginx ou Apache, l’optimisation côté serveur est indispensable pour donner du souffle à WordPress. Ce dernier est gourmand en ressource, il lui faut donc une architecture sur mesure pour qu’il puisse exprimer tout son potentiel.

Pour autant, tout le monde ne peut pas avoir accès à ces optimisations. Il existe donc une solution alternative, qui, si elle ne donnera autant de puissance à votre WordPress, pourra tout de même le soulager considérablement.

Si vous le souhaitez, vous pouvez utiliser google pour faire des recherches sur la requête « WordPress htaccess speed up ». Vous aurez alors une brouette de ressources à votre disposition.

Plongée dans le fichier htaccess

En premier lieu, il vous faut savoir que le fichier htaccess est un fichier de configuration du serveur Apache. Donc, chaque mauvaise manipulation risque de mettre votre site en carafe, avec une belle erreur 500 à l’écran. L’erreur 500 indique un problème de configuration du serveur. Donc, avant de vous lancer, faites donc un copier coller du contenu de votre htaccess. Sait-on jamais, vous serez sans doute heureux de l’avoir sous la main au cas ou.

Généralement, on utilise le fichier htaccess pour les réécriture d’url. Ce que l’on sait moins, c’est que l’on peut optimiser le comportement de notre serveur via ce fichier en lui injectant des règles pour la compressions des données, des règles pour le cache, et ainsi de suite.

Encore une fois, n’attendez pas des miracles ! Se contenter de la simple utilisation du htaccess ne suffit pas. Il vous faut penser cet utilisation dans un cadre globale d’optimisation de votre installation WordPress.

Plutôt que de partir dans un très long discours sur le pourquoi du comment du htaccess, je vais faire dans le simple. Au bas cet article, vous trouverez un code à copier coller dans votre fichier htaccess.

Que va faire ce code ?

Il va compresser les données statiques de votre site : les css, les javascript, les fichiers html, les images. Ainsi, tout ce petit monde prendra moins de temps pour être chargé.

Il va mettre en « cache » ces mêmes fichiers. En, ces données seront « cachées » sur le navigateur de votre visiteurs avec une date d’expiration de quelques mois. Pas besoin donc de recharger tout ce contenu lors de chaque visite.

Il va également protéger votre installation en sécurisant votre htaccess et votre fichier wp-config.php, il va enfin empêcher un navigateur de lister le contenu de vos répertoires (au cas où un fichier index.php ou index.html ne serait pas présent dans le dit répertoire).

Attention ! Ce code est adapté à mes besoins et à la configuration de 4h18. Par exemple, pour tout ce qui est compression, il se peut , selon votre hébergeur, que les modules apache nécessaires ne soient pas activés.

### BEGIN .htaccess
#######################
#######################
# Protection du fichier htacces
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
#######################
#######################
# Protection du fichier wpconfig.php
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
#######################
#######################
<ifModule mod_deflate.c>
 <filesMatch "\.(css|js|x?html?|php)$">
 SetOutputFilter DEFLATE
 </filesMatch>
</ifModule>
#######################
#######################
# Interdire la lecture du contenu des dossiers
Options All -Indexes
#######################
#######################
# BEGIN Compression des fichiers statiques
<ifModule mod_deflate.c>
 <filesMatch "\.(css|js|x?html?|php)$">
 SetOutputFilter DEFLATE
 </filesMatch>
</ifModule>
# END Compress text files
#######################
 #######################
# BEGIN Expire headers
<ifModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType image/x-icon "access plus 2592000 seconds"
 ExpiresByType image/jpeg "access plus 2592000 seconds"
 ExpiresByType image/png "access plus 2592000 seconds"
 ExpiresByType image/gif "access plus 2592000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
 ExpiresByType text/css "access plus 604800 seconds"
 ExpiresByType text/javascript "access plus 216000 seconds"
 ExpiresByType application/javascript "access plus 216000 seconds"
 ExpiresByType application/x-javascript "access plus 216000 seconds"
 ExpiresByType text/html "access plus 600 seconds"
 ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
# END Expire headers
#######################
 #######################
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
 <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
 Header set Cache-Control "max-age=2592000, public"
 </filesMatch>
 <filesMatch "\.(css)$">
 Header set Cache-Control "max-age=604800, public"
 </filesMatch>
 <filesMatch "\.(js)$">
 Header set Cache-Control "max-age=216000, private"
 </filesMatch>
 <filesMatch "\.(x?html?|php)$">
 Header set Cache-Control "max-age=600, private, must-revalidate"
 </filesMatch>
</ifModule>
# END Cache-Control Headers
#######################
 #######################
# BEGIN Turn ETags Off
<ifModule mod_headers.c>
 Header unset ETag
</ifModule>
FileETag None
# END Turn ETags Off
#######################
#######################
# BEGIN Remove Last-Modified Header
<ifModule mod_headers.c>
 Header unset Last-Modified
</ifModule>
# END Remove Last-Modified Header
#######################
#######################
### END .htaccess

# 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 aller plus loin

Voici un ensemble de ressources françaises et anglaises disponible sur toile qui vont vous permettre de creuser plus loin encore.

SeoMix – Optimisation du fichier htacces (fr)

Samaxes.com (en)

Zemalf.com (en) Une rubrique entière dédié à l’optimisation de WordPress #must-read

URL courte : http://4h18.com/wp-htacces