Апач:SSI внутри SSI
-
19-08-2019 - |
Вопрос
Есть ли способ, которым я могу включить включаемые файлы внутри включаемых файлов?(Повторите это пять раз быстро!)
Например:
Внутри index.html:
<!--#include virtual="/include-1.shtml"-->
Внутри включение1.shtml:
<!--#include virtual="/include-2.shtml"-->
Итак, дерево выглядит вот так: index.html <-- включение_1.shtml <-- включение_2.shtml
Как есть, это не работает на моем Apache.Первое включение работает нормально, но содержимое для вложенного включения не отображается.
Поскольку это актуально, я использую XBitHack на Apache 2, и я дважды проверил, что оба файла являются исполняемыми веб-пользователем.
Помочь?
Решение
Убедитесь, что Apache действительно пытается обработать файлы *.shtml.Попробуйте положить
<!--#echo var="DATE_LOCAL" -->
в файле *.shtml и посмотрите, получите ли вы ожидаемые результаты.Получаете ли вы тот же результат в файле *.html?Если вы не видите даты в обоих, ваша конфигурация отключена.
Другие советы
Я знаю, что этому вопросу более четырех лет, но в интересах людей, которые, как и я, находят его благодаря StackOverflow Удивительные сок поисковой системы, вот как я заставил это работать.
В разделе Apache2, тебе нужно знать это.
Соответствующий текст:
Эта команда вставляет текст включенного файла в анализируемый файл.Файлы SSI могут быть вложенными, то есть включенный файл может содержать дополнительные инструкции SSI (но в этом случае должен быть суффикс .shtml независимо от настройки XBitHack).
(Курсив мой) Для меня решение заключалось в раскомментировании двух строк по умолчанию httpd.conf
:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
... и изменение расширения имени файла включаемого файла первого уровня на .shtml:
index.html └─┬─ include1.shtml └─── include2.html
Бум!Вложенный SSI работает как настоящий чемпион.