SSI

Материал из wiki.p3.ru

SSI (Server Side Include) - переводится примерно как "включения на стороне сервера".В веб-сервере Apache реализован при помощи модуля mod_include. SSI - это набор команд, позволяющий включить в страницу информацию, недоступную средствами HTML, такую как вывод программ, значения переменных окружения и статистику по файлам (размер, дата создания и др.). SSI работает следующим образом: при получении запроса на документ, содержащий директивы SSI, web-сервер обрабатывает документ, выполняет все директивы SSI, а получившийся в результате документ возвращает клиенту.

SSI-директивы включаются в html-код в виде коментариев определенного формата:

Основные директивы:

  config — устанавливает формат сообщений об ошибках, дат и размера
  set — устанавливает значение переменной
  printenv — выводит список переменных окружения
  echo — вставляет значение переменной
  flastmod — вставляет дату и время изменения файла
  fsize — вставляет размер файла
  include — вставляет содержимое другого файла
  if, elif, else, endif — условные операторы

Так же у каждой директивы существуют свои параметры отвечающие за то или иное действие или вывод информации.

Примеры использования SSI:

echo var - Используется для вывода переменных окружения.

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

include virtual - Включает в документ содержимое указанного файла. Если с помощью include virtual включается cgi-скрипт, то в содержимое страницы попадет вывод cgi-скрипта, а не его содержание.

<!--#include virtual="/test.htm"-->

fsize virtual - Вставляет размер указанного файла.

<!--#fsize virtual="/index.shtml"--> 


Web-сервер проверяет не все документы на наличие директив SSI, а только те, которые относятся к типу, указанному в настройках сервера. В большинстве случаев используется общепринятое расширение .shtml. Но по желанию пользователь может изменить тип обрабатываемого файла на свой, использую файл конфигурации сервера, или если пользователь не имеет доступа к конфигурации сервера можно использовать файлы .htaccess . К примеру так:

AddType text/html .shtml .html .htm
AddHandler server-parsed .shtml .html .htm
Options Indexes FollowSymLinks Includes