Gostaria de adicionar dois cabeçalhos HTTP extras a todas as respostas do tipo de arquivo (tipo MIME) texto/html, mas não de outros arquivos.
Os cabeçalhos atuais (editados):
curl -I https://www......
HTTP/1.1 200 OK
Date: Fri, 23 Feb 2018 20:43:15 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache
Vary: Content-Type,Accept-Encoding
X-Frame-Options: SAMEORIGIN
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Content-Language: de-DE
A <If>
instrução que tentei não está funcionando (minha ideia era verificar text/html
e, se estiver definido, adicionar também dois cabeçalhos extras com Header set
.
Eu verifiquei várias fontes comoaqui no apache.org, mas não consigo encontrar a resposta.
Esta é uma das coisas que tentei e que me parece mais lógica. Faça uma verificação de um cabeçalho atual; se o resultado for verdadeiro, adicione cabeçalhos extras.
<If "%{HTTP:Content-Type} in { 'text/html' }">
Header set Header1 test
Header set Header2 test
</If>
Mas não sei se esse ENV é retirado do cabeçalho da requisição ou da resposta.
Alguém sabe uma maneira de conseguir isso - adicionar um cabeçalho HTTP personalizado na resposta com base no tipo MIME?
Obrigado.
Responder1
Você provavelmente precisará corresponder a algo diferente do tipo de conteúdo, porque provavelmente será definido posteriormente e, portanto, não estará disponível lá.
A documentação emhttps://httpd.apache.org/docs/2.4/expr.htmlexplica seu problema:
CONTENT_TYPE The content type of the response (not available during <If >)
Eu tentaria fazer coisas apenas com o mod_headers
módulo. Veja exemplos aqui:https://httpd.apache.org/docs/2.4/mod/mod_headers.html
Então eu sugeriria algo como:
Header always set Header1 Value1 "expr=%{CONTENT_TYPE} == text/html"
Se isso não funcionar porque CONTENT_TYPE não está definido, você precisará corresponder à extensão armazenada em REQUEST_URI.
Responder2
Obrigado a todos, isso realmente funcionou para mim (adicionando uma condição no final do Header Set
comando):
Header always set X-TEST VALUE-XYZ "expr=%{CONTENT_TYPE} == 'text/html; charset=UTF-8'"
Acho que isso também deveria funcionar sem o always
, ainda não tentei.