Cabeçalho de expiração diferente para URL específico

3

Todo o aplicativo tem um conjunto de cabeçalhos de expiração global no .htaccess Eu tenho um URL, por exemplo / current que eu preciso como um cabeçalho de expiração diferente.

    
por Tom 10.05.2011 / 15:43

4 respostas

3

Outra solução seria usar o mod_setenvif e o mod_headers do Apache para definir os cabeçalhos de cache condicionalmente.

SetEnvIf Request_URI "^/current$" OVERRIDE_CACHE_HEADERS=TRUE
Header set Cache-Control no-cache env=OVERRIDE_CACHE_HEADERS

Eu não tentei esta configuração específica, mas eu tenho um semelhante que define a variável de ambiente com uma diretiva RewriteRule e, em seguida, usa o cabeçalho para alterar condicionalmente diretivas de controle de cache

    
por 19.01.2012 / 13:02
2

O uso pode usar a diretiva <Location> apache para definir opções diferentes (por exemplo, expirar) para URLs específicos.

    
por 10.05.2011 / 16:13
1

Estou assumindo:

  1. Você quer que todo o conteúdo dentro de algum diretório tenha uma validade diferente do restante do site - não apenas alguns arquivos. Por exemplo: arquivos JS gerados dinamicamente; freqüentemente mudando o logotipo e outros arquivos de imagens; ou muitas vezes CSS editado que você quer muito tempo de vida do cache para ..
  2. O Apache está servindo diretamente esse conteúdo - não é uma pasta de visualização ou algo para um framework do qual o PHP está incluído.
  3. Você tem o módulo mod_expires ativado

Os arquivos .htaccess são procurados em todos os diretórios ao longo do caminho para o arquivo que está sendo atendido, se eles estiverem ativados, iniciando no docroot. Portanto, o mais fácil seria colocar um novo arquivo .htaccess no diretório para o qual você deseja alterar o limite de expiração. Se o seu site é www.foo.com e você quer / atual para ter um cabeçalho de expiração diferente, um simples arquivo .htaccess em www.foo.com/current. O arquivo só precisa de:

# enable expirations with mod_expires
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 2 weeks"
</IfModule>

Dito isto ... um bloco no seu arquivo httpd.conf para todo o servidor, um bloco de host virtual ou no .htaccess do docroot seriam soluções mais elegantes e gerenciáveis.

    
por 23.01.2012 / 02:09
0

Um exemplo útil que deve ser bem integrado com reescritas:
link

    
por 17.01.2012 / 11:40