Server Side Includes (SSI)
Server Side Includes (SSI)
1. Что такое SSI?
SSI (Server Side Includes) - технология, которая дает возможность "собирать" веб-страницы по частям, вставлять в них результаты выполнения CGI-скриптов и встраивать в страницы другие элементы динамики.
2. Какие файлы обрабатываются как SSI, как добавить свои файлы.
По умолчанию веб-сервер проверяет на предмет наличия SSI-инструкций только файлы с расширением shtml. Например, если добавите SSI-инструкции в файл index.shtml, то они сейчас же заработают. Если есть необходимость проверять на наличие SSI-инструкций другие файлы, то соответствующие расширения для проверки можно добавить в файл .htaccess следующей дерективой:
AddHandler server-parsed .ext1
.ext1 - это показательное расширение файла. Именно файлы такого расширения будет проверять веб-сервер на наличие SSI-инструкций. Не рекомендуем проверять html-файли, так как это создаст большую нагрузку на сервер.
3. Как работает SSI и для чего его используют.
Технологию SSI в основном могут использовать в двух целях: для "собирания" страницы из частиц html-кода и размещения на html-странице результата запущенного скрипта. В первом случае с диска просто читаются куски кода и вставляются в нужное место, во втором - найдя такую инструкцию, веб-сервер запускает скрипт, который размещен на диске, и вставляет конечный результат в html-страницу.
Рассмотрим это подробнее:
"Собирается" страница с частиц html-кода для того, чтобы не дублировать постоянно один и тот же фрагмент кода. Например, можно вынести дизайн сайта в отдельный файл и включать его с помощью SSI в все страницы вашего сайта. Тогда, когда у Вас возникнет необходимость сменить дизайн, нужно будет изменить его только в одном файле.
Разместим в файле header.inc "заголовок" веб-страницы (елементы дизайна, меню, нужные ссылки и другое), а в файл footer.inc разместим нижнюю часть веб-страницы (обычно это дата разработки ресурса и его автор). Далее создадим файл с іменем index.shtml следующего вида:
<!--#include file="header.inc"-->
Тут, допустим, содержание веб-страницы
<!--#include file="footer.inc"-->;
Имеется ввиду, что в html-коде мы размещаем начальные и конечные теги: ,
, . В результате пользователь получит одну станицу, которая будет содержать два наших шаблона и текст сайта("Тут, допустим, содержание веб-страницы").Расмотрим запуск скриптов и вивод их результата на html-страницу. Например, у вас есть скрипт-счетчик, который считает посетителей ресурса и находится он по адресу /cgi-bin/count.pl. Включим результат работы скрипта в веб-страницу. Для этого в коде html-страницы напишем вот такой SSI-код:
<!--#include virtual="/cgi-bin/count.pl"-->
В результате на странице будет выведен счетчик, который и есть выводом скрипта /cgi-bin/count.pl.
4. Ошибки при использовании SSI.
Если при использовании SSI-команд на своих html-страницах Вы увидите сообщение "[anerror occured while processing this directive]", это свидетельствует о возникновении ошибки при обработке SSI-инструкции веб-сервером.
Наиболее вероятностные причини возникновения ошибок:
- неверно указан путь к файлу, тоесть указанного файла не существует
- неверно работает скрипт, результат выполнения которого Вы хотите вставить в html-страницу.