SSI (Server Side Includes)

Материал из wiki.owlhost.net
Перейти к: навигация, поиск

SSI (Server Side Includes — включения на стороне сервера) — несложный язык для динамической «сборки» веб-страниц на сервере из отдельных составных частей и выдачи клиенту полученного HTML-документа. Реализован в веб-сервере Apache при помощи модуля mod_include. Включённая в настройках по умолчанию веб-сервера возможность позволяет подключать HTML-файлы, поэтому для использования инструкций файл должен оканчиваться расширением .shtml, .stm или .shtm

Синтаксис SSI позволяет включать в текст страницы другие SSI-страницы, вызывать внешние CGI-скрипты, реализовывать условные операции (if/else), работать с переменными и т.п. Благодаря крайней простоте языка, сборка SSI-страниц происходит очень быстро, однако многие возможности полноценных языков программирования, например, работа с файлами, в SSI отсутствуют.

Отдельные элементы синтаксиса SSI используются и в других скриптовых языках, например в ASP.

Основные команды SSI

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

Переменные окружения:

   DOCUMENT_ROOT (название основной папки для вебстраниц на сервере, обычно ваша папка public_html и путь к ней)
   USER_AGENT и HTTP_USER_AGENT (название браузера, которым пользуется посетитель)
   REMOTE_ADDR (IP-адрес посетителя)
   REMOTE_HOST (адрес посетителя в нормальной форме — например, adsl53.peterlink.ru)
   SERVER_ADDR (IP-адрес вашего сайта)
   SERVER_NAME и HTTP_HOST (адрес сервера, типа userguide.webservis.ru),
   DOCUMENT_URI, REQUEST_URI и SCRIPT_NAME (запрошенная вами страница, типа /examples/mysqlexample.shtml.),
   DOCUMENT_NAME (имя файла (без каталогов) документа, запрошенного пользователем),
   SCRIPT_FILENAME (полный путь к вебстранице на сервере. Например /home/home-webservis/public_html/ и так далее),
   SERVER_SOFTWARE (название сервера, например, Apache/1.3.2 (Unix))
   SERVER_ADMIN (почтовый адрес владельца сервера, указанный при установке),
   DATE_LOCAL (сегодняшние время и дата в вашем часовом поясе(для сервера)),
   DATE_GMT (текущее время по Гринвичу),
   LAST_MODIFIED (дата последней модификации документа, запрошенного пользователем. То есть во вложенном SSI эта переменная будет содержать имя «главного» документа, а не вложенного).
   HTTP_COOKIE (Строка Cookie установленная для текущего домена.).
   echo — выводит значение установленной переменной SSI. Допустимые атрибуты:
   var — (обязательный) имя выводимой переменной;
   encoding — (необязательный) перекодировка значения переменной перед выводом. Действует в версиях Apache 1.3.12 и выше. В версиях Apache 2.2.6 и выше по умолчанию символы кодируются
   в windows-1252 из-за чего ssi переменные окружения с русскими сиволами при отображении в документе портятся и выглядят как кракозябры, во избежание этого всегда указывайте encoding="none".
   Обратите внимание, что будучи заданным, этот атрибут должен предшествовать атрибуту var. Варианты значений атрибута encoding:
       entity — (по умолчанию) будет произведено преобразование специальных HTML-символов в сущности;
       url — будет произведено т.н. %-преобразование, то есть пригодное для указание в строке URL;
       none — не будет производиться никаких преобразований.
   flastmod — выводит дату последней модификации файла в определенном с помощью timefmt формате. Атрибуты аналогичны атрибутам fsize.
   fsize — выводит размер файла в определенном с помощью sizefmt формате. Допустимые атрибуты:
   file — определяет путь к файлу, относительно сканируемого документа;
   virtual — определяет стандартный кодированный URL, относительно сканируемого документа, или, при наличии в начале слеша (/) — относительно корня документов узла.
   include — включает текст другого документа или файла в сканируемый файл. К включаемому файлу применяются все установленные правила ограничения доступа. Если для каталога, из которого
   включается файл, установлена опция IncludesNOEXEC, и включение данного документа привело бы к запуску программы, то документ не включается, и выводится сообщение об ошибке. CGI сценарии
   вызываются, как обычно с помощью URL, который может содержать кодированную строку запроса (query string). Положение файла указывается с помощью атрибутов:
   file — указывает путь, относительно сканируемого документа; путь не может содержать ../ и не может быть абсолютным путем; всегда предпочтительнее использовать атрибут virtual;
   virtual — содержит кодированный URL, относительный или абсолютный; URL не может содержать имя протокола или имя хоста, и может содержать строку запроса.