Apache: SSI внутри SSI

Есть ли способ включить файлы включения в файлы включения? (Скажи это в пять раз быстрее!)

Например:

Внутри index.html:

<!--#include virtual="/include-1.shtml"-->

Внутри include1.shtml:

<!--#include virtual="/include-2.shtml"-->

Таким образом, дерево выглядит так: index.html <- include_1.shtml <- include_2.shtml

Как это, это не работает на моем Apache. Первое включение работает нормально, но содержимое для вложенного включения не отображается.

Поскольку это уместно, я использую XBitHack на Apache 2, и я дважды проверил, что оба файла исполняются веб-пользователем.

Помогите?

2 ответа

Решение

Убедитесь, что Apache действительно пытается обработать файлы *.shtml. Попробуйте положить

<!--#echo var="DATE_LOCAL" -->

в файле *.shtml и посмотреть, если вы получите ожидаемые результаты. Получаете ли вы тот же результат в *.html файле? Если вы не видите даты в обоих, ваша конфигурация отключена.

Я знаю, что этому вопросу уже более четырех лет, но в интересах людей, которые, как и я, находят его благодаря удивительному соку поисковой системы Stackru, вот как я заставил его работать.

Под Apache2 вам нужно это знать.

Соответствующий текст:

Эта команда вставляет текст включенного файла в анализируемый файл. Файлы SSI могут быть вложенными, то есть включаемый файл может содержать дополнительные операторы SSI (но в этом случае должен иметь суффикс.shtml независимо от настройки XBitHack).

(Акцент мой) Для меня решение проблемы заключается в том, чтобы раскомментировать две строки по умолчанию httpd.conf:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

… И изменив расширение имени файла включаемого файла первого уровня на.shtml:

index.html └─┬─ include1.shtml └─── include2.html 

Boom! Вложенный SSI работает как чемпион.

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