1 votes

Utilisation conditionnelle de mod_expires en fonction d'une variable d'environnement

J'ai emprunté quelques mod_expires code du HTML5 Boilerplate qui ajoute des valeurs par défaut raisonnables pour l'expiration des actifs (j'ai configuré la révision de la version du nom de fichier avec htaccess afin de pouvoir ajouter des heures avant les extensions d'actifs comme script.123456789.js ) :

ExpiresActive on
ExpiresDefault                                      "access plus 1 month"

# CSS
ExpiresByType text/css                              "access plus 1 year"

# Data interchange
ExpiresByType application/json                      "access plus 0 seconds"
ExpiresByType application/xml                       "access plus 0 seconds"
ExpiresByType text/xml                              "access plus 0 seconds"

# ... etc ...

Cependant, j'aimerais les désactiver sur mon serveur de développement (qui définit une valeur de DEVELOPMENT=1 ). Est-il possible de désactiver conditionnellement mod_expires (peut-être ExpiresActive On ) en 2.4.4 comme vous pouvez le faire avec mod_access si une variable d'environnement est définie ( Allow from env=DEVELOPMENT ) ?

2voto

Andrew Schulman Points 8341

Je ne connais pas de moyen simple de faire cela en fonction de la valeur d'une variable d'environnement. Vous pourriez peut-être trouver un moyen avec mod_rewrite, mais ce serait moche.

Une méthode plus simple consiste à demander à votre serveur de développement de définir un commutateur de ligne de commande, -DDEVELOPMENT pour Apache, à la place (ou en plus) de la variable d'environnement. La configuration d'Apache devient alors triviale :

<IfDefine !DEVELOPMENT>
ExpiresActive on
...
</IfDefine>

Le bon endroit pour placer l'interrupteur dépend de votre distro. Dans Debian et sa famille, vous mettez

export APACHE_ARGUMENTS=-DDEVELOPMENT

dans le fichier /etc/apache2/envvars. Dans RHEL, vous définissez

OPTIONS=-DDEVELOPMENT

dans le fichier /etc/sysconfig/httpd.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X