У меня есть странная проблема … Я использую генератор документации, который генерирует много выходных данных, например docs / foo.php.html. Это XHTML и, следовательно, содержит теги <?xml...>
в начале файла. Проблема в том, что Apache каким-то образом решил запустить ее через интерпретатор PHP, хотя «.php» появляется в середине имени файла, а не в конце. Это, в свою очередь, вызывает ошибку PHP, потому что она видит « <?
» Как команду для запуска PHP-кода и сразу же путается с « xml...
», который следует за ней.
Как настроить Apache для ТОЛЬКО выполнения .php-файлов, а не файлов .php.html? Строка «php.html» не отображается явно в моих конфигурационных файлах Apache. Существует строка « AddHandler php5-script .php
», но я не вижу, как это будет включать файлы «.php.html».
Проблема, похоже, в mod_mime .
Цитата с страницы документации Apache mod_mime:
Если вы предпочитаете только последнюю разделенную точками часть имени файла для сопоставления с определенным фрагментом метаданных, тогда не используйте директивы Add *. Например, если вы хотите, чтобы файл foo.html.cgi обрабатывался как сценарий CGI, но не файл bar.cgi.html, вместо использования AddGandler cgi-script .cgi, используйте
<FilesMatch \.cgi$>
SetHandler cgi-script
</FilesMatch>
Кроме того, вы можете google для apache mod_mime "multiple extensions"
Вы можете отключить shorttags PHP – это рекомендуемый способ смешивания PHP и XML.
short_open_tag = 0
Являются ли файлы .html перечисленными как разрешенные для анализа в PHP? Я видел, как некоторые общие хосты устанавливали файлы .html, которые можно использовать в качестве допустимого расширения PHP, которое также может захватывать ваши .php.html-файлы.