Eu tenho meu arquivo .htaccess definido para o seguinte:
Header set MyHeader "I'm Set!"
Se eu for para esse diretório ( http://example.com/test/
), que não possui arquivo de índice padrão, e visualizar a atividade de rede (neste caso, com o Chrome), posso ver que o cabeçalho está sendo enviado. Se eu for para um arquivo php ( http://example.com/test/test.php
), o cabeçalho não será enviado.
Eu criei um index.html (simplesmente <pre>Hi
como o conteúdo) e ele é enviado. Eu mudo o nome do arquivo para .php
, no header. Se eu alterar o orignal test.php
para test.html
, ele gera o código que parece lixo e o cabeçalho é enviado. Se eu mudar test.php
para test.png
, recebo um ícone de imagem quebrada e o cabeçalho é enviado.
Portanto, sem testar além do acima em termos de tipo mime e extensões de arquivo, parece que apenas .php
arquivos (legítimos ou não) estão configurados para não ter regras .htaccess aplicáveis ou especificamente as diretivas mod_headers. Mas não sei como fazer o teste e, por ser um servidor compartilhado, não tenho httpd.conf
acesso para mexer.
Alguma idéia de por que o apache pularia o envio de cabeçalhos para arquivos php?
Eu também tentei:
<FilesMatch "\.(php)$">
Header set MyHeader "I'm Set!"
</FilesMatch>
fonte
Respostas:
Esse é o comportamento esperado ao executar scripts CGI. Na versão mais recente (2.4) dos documentos mod_headers :
A questão original (com, talvez, uma explicação melhor) está no Bug 49308 .
fonte
Header always set MyHeader "I'm Set!"
deveria ter resolvido o problema. Acho que encontrei uma resposta em que alguém sugeriu isso e também não funcionou para o OP nesse caso. Mas também tenho certeza de que eles disseram para tentarHeader set always
, e pode ter sido por isso que essa sugestão falhou.Header always set
. Estou apenas interpretando mal a citação?Header always set MyHeader "I'm Set!"
, de acordo com o seu exemplo.