Apache2 мод autoindex не читает.php

Мод autoindex в Apache2 позволяет включать заголовочный файл и файлы readme, которые я настроил таким образом в каталоге .htaccess:

ReadMeName footer.html
HeaderName header.php

По какой-то непонятной причине файл заголовка не читается, если .php, Я переименовал его в header.html и в htaccess тоже:

HeaderName header.html

и это работало отлично (даже когда в .html это включено <?php ?> наценки)

Почему Apache делает шляпу, и есть ли способ это исправить?

1 ответ

В соответствии с руководством по директиве mod_autoindex / HeaderName:

Имя файла должно соответствовать документу с основным типом содержимого text/* (например, text/html, text/plain и т. Д.). Это означает, что имя файла может относиться к сценарию CGI, если фактический тип файла сценария (в отличие от его вывода) помечен как text / html...

... пока .php тип содержимого файла определяется как application/x-httpd-php, даже если вывод скрипта по умолчанию text/html, Однако надежда еще есть. Вы можете фактически разобрать PHP, добавив следующую комбо в ваш .htaccess до вашего HeaderName директива:

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

Ни один из них сам по себе не сделает эту работу. Я предполагаю, что здесь Apache (протестированный на 2.4) сначала устанавливает обработчик и анализирует .php файл, а затем соглашается понять, что тип вывода в основном text/html в самом деле. Я называю это странным, но это работает!

Другие вопросы по тегам