PRATIQUE OUTILS 
Configurer la compression HTTP sans modifier sa configuration Apache
 
"Peut-on activer la compression gzip depuis le fichier .htaccess ?" (12/01/2007)
  Forum

Réagissez dans les forums de JDN Développeurs

Malgré la baisse des coûts de la bande passante et de l'hébergement privé comme grand public, compresser ses données reste une mesure obligatoire face aux hordes grandissantes de visiteurs potentiels, mettant à mal des serveurs pas forcément configurer pour tenir une charge même sporadique.

Nous avions déjà présenté l'installation d'un tel mécanisme dans les deux principaux serveurs Web (lire "Apache et IIS : mettre en place la compression gzip"). Pour Apache, cela suppose d'avoir accès au fichier de configuration, httpd.conf - ce qui n'est pas forcément possible dans tous les cas, notamment sur les hébergements mutualisé.

Une autre voie apparente serait de passer par le fichier .htaccess, ce fichier texte placé à la racine du site Web, et permettant de personnaliser certaines directives placées dans la fichier de configuration principal.

Ce n'est cependant pas si évident. En effet, s'il est possible de préciser l'impact de la compression via .htaccess, il reste nécessaire d'avoir ce module installé sur le serveur - ce qui ne peut évidemment pas se faire avec .htaccess. De plus, les directives de chargement des modules doivent être placées dans httpd.conf - et le module lui-même dans le dossier idoine -, et on ne peut qu'en exploiter leur activation avec .htaccess.

L'activation est cependant possible, dans le cas où le module est installé mais inactif. La directive mod_gzip_on prend une valeur booléenne : Yes ou No. Si No est spécifié, mod_gzip ne sera pas activé.

.htaccess peut se révéler plus utile encore. En effet, par défaut la compression s'applique à toutes les données transmises par le serveur HTTP : fichier HTML et CSS, bien sûr, mais également image, PDF, Flash - bref, les données binaires qui ne nécessitent pas forcément une compression (les fichiers JPEG sont par défaut bien compressés, tout comme évidemment les fichiers ZIP, RAR, GZ...), et qui consommeraient donc du temps processeur pour un gain minime en taille.

mod_gzip_item_exclude est la réponse, en permettant de cibler les fichiers, les types MIME, ou les gestionnaires de ressources. Cette directive prend en second argument une expression rationnelle permettant de reconnaître les formats et types ciblés.

Nous plaçons toutes ces directives spécifiques au module au sein d'un bloc IfModule vérifiant qu'il est effectivement installé.
  1. <IfModule mod_gzip.c>
  2.   mod_gzip_on Yes
  3.   mod_gzip_item_exclude         file       \.(js|css)$
  4.   mod_gzip_item_exclude         file       \.gz$
  5.   mod_gzip_item_exclude         file       \.zip$
  6.   mod_gzip_item_exclude         mime       ^image/
  7. </IfModule>
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page