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
в самом деле. Я называю это странным, но это работает!