Exemple : expiration du contenu statique avec les serveurs Apache

Il est possible que vous deviez modifier la configuration de votre serveur Apache pour effectuer cette opération. Vous devrez pour cela localiser les emplacements suivants :

  • fichier de configuration global httpd.conf généralement situé dans le répertoire /etc/httpd/conf/httpd.conf ;
  • fichier de sous-configuration, généralement situé dans le répertoire /etc/httpd/conf.d ;
  • fichier htaccess, généralement situé dans le répertoire où se trouve le contenu (si votre serveur le permet).

Choisissez le répertoire ou groupe de fichiers auquel vous souhaitez appliquer une date d'expiration (et donc un en-tête Expires).

S'il s'agit d'un répertoire, insérez un bloc correspondant à ce répertoire dans le fichier de configuration :

<Directory /home/user/html/foo>
...
</Directory>

S'il s'agit d'un groupe de fichiers, utilisez un caractère générique en tant que nom de fichier :

<FilesMatch .*\.jpg$>
...
</FilesMatch>

Notez qu'il n'est pas possible d'utiliser le bloc dans le fichier htaccess mais qu'il est possible d'utiliser le bloc FilesMatch.

Dans ce bloc, activez mod_expires et associez une date d'expiration par défaut à tous les fichiers correspondants [1][2] :

ExpiresActive On
ExpiresDefault modification "plus 5 hours"

Cette expression indique que le contenu expirera 5 heures après l'heure de modification indiquée dans le fichier. Toutes les requêtes ultérieures ne seront pas mises en cache.

Vous pouvez remplacer cette valeur par défaut pour certains types MIME :

ExpiresByType text/html "now plus 1 hour"

Cette expression indique que les documents HTML expireront une heure après avoir été sollicités, quelle que soit l'heure de modification qui apparaît dans le fichier sur le disque. Tous les autres types de contenu utiliseront la valeur par défaut.


References

[#1] Documentation relative à mod_expires sur les serveurs Apache 1.3 : http://httpd.apache.org/docs/1.3/mod/mod_expires.html

[#2] Documentation relative à mod_expires sur les serveurs Apache 2.2 : http://httpd.apache.org/docs/2.2/mod/mod_expires.html