2009-03-17 10 views
1

Есть ли способ включить включенные файлы внутри файлов include? (Скажем, что в пять раз быстрее!)Apache: SSI внутри SSI

Например:

Внутри index.html:

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

Внутри include1.shtml:

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

Так дерево выглядит так: index.html < - included_1.shtml < - included_2.shtml

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

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

Помощь?

+1

Я так рад, что вы задали этот вопрос, я всегда включал в себя файлы include (хе-хе, это сложно сказать) с именем .htm. И я попытался вложить еще один элемент внутри файла .htm, и он не работал, и мне никогда не приходило в голову (хотя это, очевидно, должно было быть), чтобы этот файл нуждался в правильном расширении. Итак, мега спасибо из будущего ... –

ответ

1

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

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

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

+0

Да, Apache разбирается.shtml, но только на один уровень. Он не анализирует их два или более уровня в глубину. Это моя проблема. – neezer

+0

Это не то, что говорит ваше сообщение. У вас есть файл * .html, который анализируется, а не файл * .shtml. Поэтому подозрительно, что он останавливается на * .shtml. –

+0

Afph, вы правы. Пропустил это. Извините ... Спасибо. – neezer

4

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

Под Apache2, you need to know this.

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

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

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

AddType text/html .shtml 
AddOutputFilter INCLUDES .shtml 

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

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

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