Apache no-cache em arquivos específicos

3

Eu tenho um aplicativo que tem a seguinte regra de reescrita:

    RewriteCond /tmp/maintenance.html -f
    RewriteCond %{HTTP_HOST} !^backdoor.myapp.com$
    RewriteRule ^(.*)$ /tmp/maintenance.html [L] 

Este é o nosso "modo de manutenção". então eu ativei a manutenção ligando /tmp/maintenance.html com um arquivo real (e mantendo o acesso de backdoor usando backdoor.myapp.com ).

O problema é que esta página parece estar sendo armazenada em cache pelos navegadores, portanto, quando a manutenção é desativada, o usuário precisa fazer uma atualização difícil para voltar ao aplicativo principal.

Eu estou querendo saber como posso definir os cabeçalhos para este arquivo específico apenas no Apache2. Eu acredito que há um cabeçalho no-cache ? Eu estou supondo que eu quero definir esse cabeçalho para este arquivo, e tudo deve ser bom.

alguém pode me orientar como fazer isso, ou explicar o mecanismo pelo qual esse arquivo estático nunca deve ser armazenado em cache no navegador do usuário?

    
por brad 05.07.2010 / 16:24

2 respostas

4
<Directory /some/real/path/to/tmp>
  Header Set Pragma "no-cache"
  Header Set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
  Header Set Cache-Control "max-age=0, no-store, no-cache, must-revalidate"
  Header Unset ETag
  FileETag None
</Directory>

Isso deve ser feito para quase todos os navegadores.

    
por 06.07.2010 / 06:39
5

Para controlar melhor a granularidade dos arquivos excluídos do armazenamento em cache, você pode usar a diretiva "FilesMatch".

Além disso, certifique-se de que mod_headers e mod_rewrite estejam carregados no servidor. Se você não tiver certeza, coloque as diretivas de cabeçalho em uma seção "ifModule":

<FilesMatch "^(excludeme-1|excludeme-2)\.jar$">
    FileEtag None
    <ifModule mod_headers.c>
        Header Unset ETag
        Header Set Cache-Control "max-age=0, no-store, no-cache, must-revalidate"
        Header Set Pragma "no-cache"
        Header Set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
    </ifModule>
</FilesMatch>
    
por 07.08.2012 / 00:58