2016-12-11 2 views
1

Apache2 mod autoindex permet d'inclure un en-tête et un fichier readme, que je configuré de cette manière .htaccess du répertoire:Apache2 autoindex mod ne de pas lu .php

ReadMeName footer.html 
HeaderName header.php 

Pour une raison obscure, l'en-tête le fichier n'est pas lu s'il s'agit d'un .php. Je renomme à header.html et dans le htaccess aussi:

HeaderName header.html 

et cela a fonctionné parfaitement (même en .html il inclus) <?php ?> marges bénéficiaires

Pourquoi est-ce apache faire un chapeau, et est-il un moyen de répare le?

+0

Avez-vous lu ceci? https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html#headername –

+0

Fais-le, laisse-moi le faire moi-même. –

+0

bien en fait cela n'a pas fonctionné ... j'ai supprimé mon commentaire pour que vous ne le voyiez pas alors mais trop tard apparemment ^^ – joH1

Répondre

0

par le manuel sur mod_autoindex/HeaderName directive:

Nom du fichier doit se résoudre à un document avec un grand type de contenu de text/* (par exemple, text/html, text/plain, etc.). Cela signifie que le nom de fichier peut se référer à un script CGI si le type de fichier réel du script (par opposition à sa sortie) est marqué comme text/html ...

... tout un type de contenu de fichier .php est défini comme application/x-httpd-php, même si la sortie du script est par défaut text/html. Cependant, il y a encore de l'espoir. Vous pouvez réellement obtenir le PHP analysable en ajoutant le combo suivant dans votre .htaccess avant votre directive HeaderName:

AddHandler application/x-httpd-php .php 
AddType text/html .php 

Aucune des deux sur leur propre fera le travail. Je suppose qu'ici Apache (testé sur 2.4) définit d'abord un gestionnaire et analyse le fichier .php, puis accepte de comprendre que le type de sortie est en majeure partie text/html en effet. J'appelle ça bizarre, mais ça marche!

+0

Je suis sur Apache 2; 4, cela pourrait-il changer quelque chose? – joH1

+0

Je suis sur 2.4 aussi, cela fonctionne pour moi. FWIW, avoir ceci dans mon 'httpd.conf' en plus de ce qui précède (bien que cela ne devrait pas faire de différence sur un test rapide):' IndexOptions FancyIndexing HTMLTable VersionSort FoldersFirst NameWidth = * XHTML SuppressDescription'. –

+0

Fonctionne également correctement sur Apache 2.2 sur ma boîte CentOS. Voici un sampler, cloné mon '.htaccess' comme le' htaccess.txt' là: http://codesatori.com/tmp/autoindex/ ... (Avec une feuille de style personnalisée de mon serveur par défaut au cas où vous vous demandez .) Oh et je cours PHP (7.0.2) en tant que 'mod_php' sur les serveurs locaux et distants, je n'ai aucune idée si l'exécution de CGI peut changer la façon dont cela fonctionne. J'ai l'impression que 'AddHandler' vis-à-vis de' AddType' est parmi les coins les plus obscurs d'Apache. –