J'ai mon fichier .htaccess défini comme suit:
Header set MyHeader "I'm Set!"
Si je vais dans ce répertoire ( http://example.com/test/
), qui n'a pas de fichier d'index par défaut, et que je visualise l'activité réseau (dans ce cas avec Chrome), je peux voir que l'en-tête est envoyé. Si je vais dans un fichier php ( http://example.com/test/test.php
), l'en-tête n'est pas envoyé.
J'ai créé un index.html (avec simplement <pre>Hi
comme contenu) et il est envoyé. Je change le nom du fichier en .php
, pas d'en-tête. Si je change l'orignal test.php
en test.html
, il produit le code qui ressemble à des ordures et l'en-tête est envoyé. Si je passe test.php
à test.png
, j'obtiens une icône d'image cassée et l'en-tête est envoyé.
Ainsi, sans tester au-delà de ce qui précède en termes de type mime et d'extensions de fichiers, il semble que seuls les .php
fichiers (légitimes ou non) sont définis pour ne pas appliquer de règles .htaccess ou spécifiquement les directives mod_headers. Mais je ne sais pas comment tester cela et parce que c'est un serveur partagé, je n'ai pas httpd.conf
accès à fouiner.
Des idées sur la raison pour laquelle apache ignorerait l'envoi d'en-têtes pour les fichiers php?
J'ai aussi essayé:
<FilesMatch "\.(php)$">
Header set MyHeader "I'm Set!"
</FilesMatch>
la source
Réponses:
Il s'agit d'un comportement attendu lors de l'exécution de scripts CGI. À partir de la dernière version (2.4) des documents mod_headers :
Le problème d'origine (avec, peut-être, une meilleure explication) se trouve dans le bogue 49308 .
la source
Header always set MyHeader "I'm Set!"
aurait dû résoudre le problème. Je pense que j'ai trouvé une réponse où quelqu'un a suggéré cela et cela n'a pas fonctionné pour le PO dans ce cas non plus. Mais je suis également sûr qu'ils ont dit d'essayerHeader set always
, ce qui explique peut-être pourquoi cette suggestion a échoué.Header always set
. Suis-je en train de mal lire la citation?Header always set MyHeader "I'm Set!"
, selon votre exemple.