Usando mod_expires condicionalmente dependendo de uma variável de ambiente

1

Eu pedi emprestado algum código mod_expires do Boilerplate HTML5 que adiciona alguns padrões razoáveis para a expiração de ativos (tenho a versão do nome do arquivo configurada com htaccess para poder adicionar mtimes antes de extensões de recurso como 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 ...

No entanto, eu gostaria de desativá-los no meu servidor de desenvolvimento (que define uma variável de ambiente DEVELOPMENT=1 ). É possível desabilitar condicionalmente mod_expires (talvez ExpiresActive On ) no 2.4.4 como você pode com mod_access se uma variável de ambiente estiver definida ( Allow from env=DEVELOPMENT )?

    
por Bailey Parker 14.07.2013 / 03:30

1 resposta

2

Eu não conheço nenhuma maneira fácil de fazer isso com base no valor de uma variável de ambiente. Você pode descobrir uma maneira com o mod_rewrite, mas seria feio.

Um método mais fácil é fazer com que seu servidor de desenvolvimento configure uma opção de linha de comando, -DDEVELOPMENT , para o Apache, em vez de (ou além) da variável de ambiente. Então a configuração do Apache se torna trivial:

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

O lugar certo para configurar o switch depende da sua distro. No Debian & família, você define

export APACHE_ARGUMENTS=-DDEVELOPMENT

em / etc / apache2 / envvars. No RHEL, você define

OPTIONS=-DDEVELOPMENT

em / etc / sysconfig / httpd.

    
por 14.07.2013 / 04:32