Il mio file .htaccess è impostato come segue:
Header set MyHeader "I'm Set!"
Se vado in quella directory ( http://example.com/test/), che non ha un file indice predefinito, e visualizzo l'attività di rete (in questo caso con Chrome), vedo che viene inviata l'intestazione. Se vado a un file php ( http://example.com/test/test.php), l'intestazione non viene inviata.
Ho creato un index.html (con semplicemente <pre>Hicome contenuto) e viene inviato. Cambio il nome del file in .php, nessuna intestazione. Se cambio l'originale test.phpin test.html, viene emesso il codice spazzatura e viene inviata l'intestazione. Se cambio test.phpa test.png, ricevo l'icona di un'immagine rotta e l'intestazione viene inviata.
Quindi, senza testare oltre quanto sopra in termini di tipo mime ed estensioni di file, sembra che solo i .phpfile (legittimi o di altro tipo) siano impostati per non applicare regole .htaccess o in particolare le direttive mod_headers. Ma non so come testarlo e dato che si tratta di un server condiviso, non ho httpd.confaccesso a curiosare.
Qualche idea sul perché Apache salta l'invio delle intestazioni per i file php?
Ho anche provato:
<FilesMatch "\.(php)$">
Header set MyHeader "I'm Set!"
</FilesMatch>