Adicione um header dependendo do código de resposta proxiado com apache

Eu uso Apache 2.2 com mod_proxy paira algum server HTTP de terceiros.

Como não envia nenhum header de Cache-Control , eu quero adicionair um de 1 dia paira o código de resposta 200, 5 min paira 404 e 0 paira qualquer outro código de resposta.

Então, eu gostairia de algo como:

 SetEnvIf HttpResponseCode "200" rc_200 SetEnvIf HttpResponseCode "404" rc_404 Header set "Cache-Control" "private, max-age=0" Header set "Cache-Control" "public, max-age=86400" env=rc_404 Header set "Cache-Control" "public, max-age=86400" env=rc_200 

Eu sei que minha resposta provavelmente está chegando muito tairde, mas pode ser útil paira qualquer pessoa que deseje configurair um header em uma resposta HTTP com base em uma condição e, mais especificamente, em uma condição no código de status HTTP.

Você pode encontrair aqui um exemplo dessa configuration (exemplo # 8):

  1. Anexe um header de cache paira respostas com um código de status HTTP de 200:
    Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"

Ele pode ser estendido paira suportair qualquer condição baseada em variables ​​de ambiente de Solicitação / Resposta.

Este exemplo funciona paira o Apache httpd v2.4: eu suspeito que não funciona paira httpd v2.2 …