Comment utiliser les fichiers .htaccess et les RewriteRule

Les fichiers .htaccess permettent à l'utilisateur d'affiner la configuration du serveur web sans avoir les droits d'administration sur celui-ci.

C'est donc un outil très puissant mais à manier avec beaucoup de précautions, car une erreur dans l'usage de vos .htaccess peut ruiner tous les efforts d'optimisation de l'administrateur du serveur web.

 

Tout d'abord, sachez que les .htaccess ne fonctionneront que si l'administrateur a défini le paramètre AllowOverride pour votre vhost.

 

Ensuite, il faut savoir qu'une fois ce paramètre défini, Apache va chercher un fichier .htaccess a chaque fois qu'il traverse un répertoire, ce qui peut déjà être suffisant pour faire s'écrouler les performances !  Imaginez par exemple que votre site exporte une image sur d'autres sites web, comme un logo, vu 2 millions de fois par jour. Vous le placez dans /images/2013/03/13/petites/logo.png.

 

Apache va chercher un fichier .htaccess dans /, puis dans /images, puis dans /images/2013, puis dans /images/2013/03, puis dans /images/2013/03/13, puis dans /images/2013/03/13/petites/ avant d'afficher le logo.


Vous multipliez donc par 6 la consommation de ressources en lecture disque !

 

Sur un site très fréquenté, il vaut mieux donc éviter les sous répertoires imbriqués en particulier pour les contenus les plus fréquentés (sur une image vu 1 fois par mois ça sera beaucoup moins grave).

 

Maintenant que nous avons vu l'emplacement du .htaccess, voyons son contenu.

 

Tout d'abord, sachez que tout ce qui peut être fait sans mod_rewrite doit être fait sans mod_rewrite, ce sera moins exigeant en ressources.

 

Ensuite, pour les règles mod_rewrite, là encore des optimisations sont possibles. Pour notre cas précédent par exemple de logo vu 2 millions de fois par jour, parcourir 100 règles de réécriture avant la règle qui concerne le logo fera perdre un temps précieux.

 

Il faut donc toujours traiter les contenus les + fréquentés au début du .htaccess, et utiliser si possible le flag [L] pour que les règles suivantes ne soient pas étudiées et gagner du temps.

 

Ensuite seulement viendront les contenus les moins fréquentés.

 

Evidemment, à chaque fois que vous pouvez utiliser une règle générique basée sur des expressions régulières plutôt que des règles spécifiques, vous gagnez là encore du temps CPU. Moins vous aurez de règles de réécriture, meilleures seront les performances.

 

Dernière précision qui aurait mérité d'être évoquée dès le début : on peut très vite s'emmeler les pédales dans un .htaccess, donc suivre ces règles d'optimisation vous permettra aussi de garder tous vos cheveux sur votre tête ! Utiliser mod_rewrite n'importe comment finit toujours de la même façon : en cauchemar !

 

 Ajouter un commentaire 
Titre du commentaire :
Votre nom :
Votre courriel :
Me prévenir lorsqu'il y a de nouveaux commentaires sur cette page:


Commentaire :