SSI: server side includes
1. Какие файлы обрабатываются как SSI, как добавить свои файлы
По умолчанию веб-сервер проверяет на предмет поиска SSI-инструкций только файлы с расширением *.shtml.
Например, поместите SSI-команды в файл index.shtml и это сразу будет работать.
Если есть необходимость проверять на наличие SSI другие файлы, соответствующие расширения для проверки можно добавить, поместив в файл .htaccess следующую инструкцию:
AddHandler server-parsed .ext1
.ext1 - расширение файлов, которые должны проверяться на наличие в них SSI.
Не рекомендуется добавлять расширения .html и .htm, так как в этом случае сервер будет проверять все html-файлы на предмет наличия SSI-вставок.
Это может привести к совершенно бессмысленной нагрузке на сервер.
К началу.
2. Как работает и для чего используется SSI
Технологию SSI начинающие пользователи в основном могут использовать для двух целей:
для "склейки" страницы из частей html-кода и для запуска скриптов с целью размещения результатов их работы на создаваемой html-странице.
В первом случае с диска сервера читаются соответствующие файлы и вставляются в код страницы, откуда был вызван SSI-код.
Во втором случае веб-сервер, найдя SSI-инструкцию, запускает скрипт, размещенный на диске, и вставляет в итоговую страницу результат выполнения скрипта.
Рассмотрим подробнее:
* "Склейка" страницы из частей html-кода.
Используется для того, чтобы не дублировать в множестве веб-страниц один и тот же html-код.
Например, можно вынести весь дизайн в SSI-включения, которые подключать в конкретном html-файле, в котором будет содержаться только текст конкретной страницы.
Поместим в файл header.inc "заголовок" веб-страницы (элементы дизайна, меню, нужные ссылки и другие элементы, которые присутствуют на всех страницах), а в файл footer.inc поместим нижнюю часть веб-страницы (завершающую часть дизайна).
Далее создадим файл с именем index.shtml, который будет выглядеть так:
<!--#include file="header.inc"-->
А здесь у нас будет основной текст страницы
<!--#include file="footer.irc"-->
Предполагается, что в файлы-включения мы поместили html-код хотя бы вроде начальных/конечных тэгов <html>, <head>, <body> и так далее.
В результате пользователь получит страницу, в которую будет сначала включено содержимое файла header.inc, далее слова "А здесь у нас будет основной текст страницы" и затем содержимое файла footer.inc.
Такое использование SSI удобно с точки зрения отсутствия необходимости все время вставлять во вновь создаваемые страницы один и тот же html-код, а также с точки зрения удобства изменения основных элементов сайта - меняем в одном месте html-код, который сразу меняется на всех страницах по всему сайту.
* Запуск скриптов и размещение результатов их работы на создаваемой html-странице.
Таким образом можно разместить на странице практически любую функциональность, которая доступна для написания на языке perl, например (или практически на любом другом поддерживаемом на хостинге.
Например, у вас есть скрипт-счетчик, который показывает сколько посетителей заходило на вашу страницу и находится он по адресу /cgi-bin/count.pl.
Включим результат его работы в веб-страницу.
Для этого в коде html-страницы разместим такой SSI-код:
<!--#include virtual="/cgi-bin/count.pl"-->
В итоге на странице, которую увидит пользователь, будет размещен счетчик, который вывел скрипт /cgi-bin/count.pl.
Полный список команд SSI вы найдете в описании Apache-модуля mod_include.
К началу.
3. Диагностика ошибок при использовании SSI
Если при использовании SSI-команд на своих html-страницах вы увидели сообщение
[an error occured while processing this directive]
это свидетельствует о возникновении ошибки при обработке SSI-инструкции веб-сервером.
Возможные причины возникновения такой ошибки:
неверно задан путь к включаемому файлу/скрипту - такой файл не существует
неверно работает cgi-скрипт, который вы пытаетесь вставить в страницу
К началу.
Полезное
Полный список команд SSI
Примеры использования SSI
|