Attention, certains fonctions ne seront pas forcément accessible suivant l'hébergeur que vous utilisez. En effet, Apache fonctionne sur le principe de modules qu'on active ou désactive pour multiplier ses capacités.

Pré-requis

Un site Internet dont le contenu est délivré au visiteur par le biais d'Apache. C'est le cas de plus de 90% des sites Internet. Par défaut, à la suite d'une installation de CMS Made Simple vous devriez avoir à la racine de votre site Internet un fichier « .htaccess ». Si tel n'est pas le cas, vous devriez immédiatement en créer un.

Le fichier « .htaccess » optimisé et ses explications

Gestion du cache

Le cache est une fonctionnalité qui permet à votre navigateur de ne pas télécharger deux fois un même fichier afin d'accélérer le chargement des pages. Ainsi si toutes les pages de votre site Internet comportent un logo identique, votre navigateur en passant de page en page ne rechargera pas le logo depuis le serveur.

Dans le fichier « .htaccess » vous devez rajouter les lignes suivantes :

<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|png|gif|js|css|swf|ico)$">
ExpiresActive on
ExpiresDefault "access plus 1 months"
</filesmatch>
</ifmodule>

La première ligne vérifie que le module « mod_expires.c » est activé sur le serveur Apache. C'est le fameux module de gestion du cache. Si tel est le cas alors il va traiter la suite. La seconde ligne permet de définir quels seront les fichiers qui devront être mis en cache. Ici nous avons les images (jpg, jpeg, png et gif), les fichiers Javascript (js), les fichiers Flash (swf) et les icônes (ico). La troisième ligne active le module, sans quoi rien ne fonctionnerait. La quatrième ligne indique au module que le fichier devra tout de même être rechargé un mois après le dernier accès.

Compression des fichiers

Les navigateurs (de moins de 10 ans) gèrent normalement la décompression à la volée de fichiers fournis au format GZip. GZip c'est un mode de compression largement développé sous le système d'exploitation Linux. Nous allons exploiter cette fonctionnalité pour fournir au navigateur des versions compressées des fichiers les plus lourds (hors images).

Dans le fichier « .htaccess » vous devez rajouter les lignes suivantes :

<filesmatch ".(php|html|css|js)$">
SetOutputFilter DEFLATE
</filesmatch>

La première ligne indique quels sont les fichiers qu'Apache devra compresser pour les navigateurs. Dans notre cas, les fichiers « .php » et « .html » mais surtout les fichiers CSS et Javascript. La compression pouvant atteindre les 90%, les temps de chargement n'en seront que meilleurs. La seconde ligne indique au navigateur que les fichiers ayant cette extension devront être décompressés.

Attention, ne vous amusez pas à rajouter les extensions d'images ici car non seulement vous ne gagnerez pas en terme de vitesse (voire même l'effet inverse) et surtout votre serveur aura beaucoup plus de travail.

La redirection des « www »

La dernière petite modification que nous allons faire dans le fichier « .htaccess » c'est permettre à nos visiteurs de saisir une adresse sans « www » dans leur navigateur et d'être redirigé automatiquement sur la version avec « www ». Cette fonctionnalité est particulièrement intéressante pour un bon référencement car seules les adresses avec les « www » seront référencées. On évite ainsi les contenus dupliqués très néfastes pour son positionnement dans les moteurs de recherches.

Dans le fichier « .htaccess » vous devez rajouter les lignes suivantes :

RewriteCond %{HTTP_HOST} ^monsite.fr$
RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]

La première ligne dit au serveur Apache quelque chose dans ce genre : « Si tu rencontres une adresse qui commence par « monsite.fr » alors tu rediriges vers « http://www.monsite.fr ». Par exemple, si le visiteur tape dans sa barre d'adresse « monsite.fr/dossier/page.html » alors Apache transformera l'adresse saisie en « http://www.monsite.fr/dossier/page.html ».

Les pretty urls ou URL Rewriting

Normalement vous devriez avoir les lignes suivantes dans votre fichier « .htaccess ». Je vais tout de même les commenter.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

La première ligne vérifie si l'adresse saisie dans le navigateur pointe bien sur un fichier (f). La seconde, idem mais pour un dossier (d). La dernière redirige sinon l'adresse saisie vers le fichier index.php de CMS Made Simple pour afficher la page demandée.

Conclusion

Nous n'avons fait ici que survoler toutes les capacités du fichier « .htaccess ». Mais ces quelques petites optimisations vont vous permettre de mieux gérer votre cache, de compresser des fichiers à la volée et d'éviter les contenus dupliqués. Nous aurons probablement l'occasion de voir dans de prochains billets d'autres astuces.