Apache: SSI внутри SSI - PullRequest
       49

Apache: SSI внутри SSI

2 голосов
/ 17 марта 2009

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

Например:

Внутри index.html :

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

Внутри include1.shtml :

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

Итак, дерево выглядит так: index.html <- include_1.shtml <- include_2.shtml </strong>

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

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

Помощь

Ответы [ 2 ]

4 голосов
/ 04 декабря 2013

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

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

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

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

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

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

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

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

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

1 голос
/ 17 марта 2009

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

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

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

...