Configurando o cabeçalho de expiração correto no apache2

3

Estou executando o apache2 no Ubuntu. Eu quero definir o cabeçalho de expiração como este.

ExpiresActive On
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
  ExpiresDefault "access plus 1 year"
</FilesMatch>

Eu entendo que ele armazenará em cache uma URL como www.example.com/images/a.gif por um ano.

A minha pergunta é sobre url como esta. www.example.com/javascripts/all.js?123456. Supondo que o URL acima está em cache. Agora, se eu alterar a URL para www.example.com/javascripts/all.js?abcdef, o navegador solicitará o novo arquivo js?

Basicamente eu estou tentando encontrar enquanto o cache faz o navegador levar em conta o URL completo, incluindo os dados após o ponto de interrogação.

Além disso, minha configuração atual do vhost é semelhante a esta

<VirtualHost xx.xx.xx.xx:80>
  ServerName xxxx
  ServerAlias xxxxx
  DocumentRoot /home/xxx/current/public
  <Directory "/home/xxxx/current/public">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
  </Directory>
  <Location />
    # Insert filter
    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

  </Location> 
</VirtualHost>

Estou assumindo que posso colocar ExpiresActive On e outras declarações antes do início da tag.

    
por Roger 27.08.2009 / 17:41

1 resposta

2

Tudo bem. De acordo com sua configuração all.js? 123456 solicitará uma nova versão de all.js. Além disso, você pode colocar ExpiresActiveOn dentro de um host virtual ou diretório.

    
por 27.08.2009 / 18:13

Tags