Configure o cabeçalho de resposta do Apache para um código de status de resposta específico

4

Quando meu aplicativo PHP retorna um código de status 301, eu gostaria de adicionar automaticamente alguns cabeçalhos à resposta para evitar o armazenamento em cache do redirecionamento.

Header set "Expires" "Tue, 03 Jul 2001 06:00:00 GMT"
Header set "Cache-Control" "no-store, no-cache, must-revalidate, max-age=0"
Header set "Pragma" "no-cache"

Enquanto normalmente adiciono isso no nível do aplicativo, devido à maneira como esse aplicativo foi criado, ele não é uma correção rápida. Como uma solução de intervalo, gostaria de configurar o Apache para adicionar esses cabeçalhos, se possível.

Como posso adicionar condicionalmente esses cabeçalhos, com base no código de status da resposta?

Possivelmente relacionado: Adicionar um cabeçalho dependendo no código de resposta do proxy com o apache

    
por Brad 16.11.2012 / 18:43

1 resposta

1

Não acho que seja possível usar o apache (o problema é a condição), mas tenho uma ideia de como resolvê-lo no nível do aplicativo, mas sem alterar o aplicativo real.

Não tenho certeza, você pode fazer isso, mas deve funcionar - de qualquer maneira, eu apenas tentei ajudar: -)

Eu criaria em algum lugar um script PHP definindo a função de consertar os cabeçalhos e registrá-los como função de desligamento do PHP:

<?php
  function fix_headers_on_shutdown() {
    $headers = headers_list();
    if(/* TODO: is redirect condition */) {
      header('Expires: Tue, 03 Jul 2001 06:00:00 GMT');
      header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
      header('Pragma: no-cache');
    }
  }
  register_shutdown_function('fix_headers_on_shutdown');
?>

E então faça o PHP incluir este script no início de cada script PHP com auto_prepend_file opção de configuração.

    
por 16.11.2012 / 21:50

Tags