Исполнение php кода в отдельно взятом файле *.xml

Задача: сделать возможным исполнение php кода в отдельно взятом файле, тип которого не предполагает такого поведения.

Например: необходимо чтобы XML карта сайта генерировалась заново при каждом обращении к серверу и выводилась по адресу mysite.ru/sitemap.xml

Решение: в файле .htaccess добавляем код

<Files "sitemap.xml">
   AddType application/x-httpd-php .xml
</Files>

Теперь при обращении к файлу sitemap.xml сервер будет считать, что этот файл является приложением, исполняемым при помощи php интерпретатора. Соответственно весь PHP код, содержащийся в данном файле, выполнится, и браузеру будет отдан его результат.

Замечание 1: Чтобы инструкция AddType сработала, должны быть соответствующие привилегии. Например AllowOverride All или AllowOverride Filelnfo.

Замечание 2: Если у вас фронтендом стоит проксирующий HGINX то указанный файл необходимо внести в исключения, чтобы он отдавался через APACHE как динамический контент.

Оставить комментарий