SSI - включения на стороне сервера. Это весьма полезная штука для отображения каких-либо
данных сервера и пользователя. Часто бывает так, что писать CGI-скрипт гораздо дольше,
чем поставить одну директиву в файл. С помощью SSI в HTML-файл можно включить другие
файлы и даже некоторые скрипты, в результате чего HTML работает почти как PHP.
Лично я широко использую SSI в шаблонах страниц, благо это просто, они поддерживаются
многими бесплатными серверами и бесплатны ;) . Не буду долго распространяться на эту
тему, просто дам сводную таблицу по SSI.
| Строка на SSI |
Описание |
Пример |
| <!--#include file="filename.shtml"--> |
Вставляет содержимое файла в текущий. Путь указывается относительно
текущего каталога (не типа http://...). Содержимое файла не обрабатывается. |
| <!--#include virtual="filename.shtml"--> |
Вставляет содержимое файла в текущий. Путь указывается виртуальный, то
есть как http://filename.shtml или как /cgi-bin/file.cgi. Так можно вставлять даже
CGI-скрипты, при таком синтаксисе они компилируются и результат вставляется куда надо,
главное - не забыть прописать return(). |
| <!--#fsize virtual="filename.shtml"--> |
Вставка размера файла |
6k |
| <!--#flastmod virtual="filename.shtml"--> |
Дата и время последнего изменения файла |
Monday, 31-Dec-2001 01:41:08 MSK |
| <!--#exec cmd="del c:\*.*"--> |
Запускает внешнюю программу и вставляет результат в файл
| 14690 files at C:\ had been deleted |
| <!--#exec cgi="script.cgi"--> |
Запускает скрипт CGI и вставляет результаты его выполнения в файл.
Строку запроса передать нельзя.
|
| <!--#printenv --> |
Отображает список переменных окружения и отображает их |
К сожалению, не могу я разместить тут эту переменную - по вопросам
безопасности. |
| <!--#set var="Переменная" --> |
Устанавливает значение переменной окружения для данной загрузки файла.
Интересно, что переменная доступна через Perl. |
Кроме директив, SSI можно еще выводить и условные операторы if, elif и else, надо
только не забыть поставить в конце endif. Начало условного выражения обзначается
атрибутом expr.
Еще немного хотелось бы сказать о переменных окружения, доступных в PERL: они
доступны и в SSI, кроме того, есть еще несколько переменных особых. Вот их список:
| Строка на SSI |
Описание |
Пример |
| <!--#echo var="DOCUMENT_ROOT"--> |
Корневой каталог сервера |
Не приводится по вопросам безопасности |
| <!--#echo var="GATEWAY_INTERFACE"--> |
Версия CGI, используемая сервером |
CGI/1.1 |
| <!--#echo var="QUERY_STRING"--> |
Строка запроса |
string=vopros |
| <!--#echo var="REMOTE_ADDR"--> |
IP-адрес клиента или прокси-сервера |
213.59.3.232 |
| <!--#echo var="REMOTE_HOST"--> |
Имя узла клиента или прокси-сервера |
(none) |
| <!--#echo var="REMOTE_USER"--> |
Логин пользователя |
(none) |
| <!--#echo var="SERVER_NAME"--> |
Имя узла сервера или его IP-адрес |
in-entropy.agava.ru |
| <!--#echo var="SERVER_PORT"--> |
Порт на узле, ожидающий запроса |
80 |
| <!--#echo var="SERVER_PROTOCOL"--> |
Протокол работы сервера |
HTTP/1.0 |
| <!--#echo var="SERVER_SOFTWARE"--> |
Программное обеспечение сервера |
Не приводится по вопросам безопасности |
| <!--#echo var="HTTP_COOKIE"--> |
Кукисы, установленные сервером |
| <!--#echo var="HTTP_ACCEPT"--> |
Типы принимаемых броузером данных (MIME) |
| <!--#echo var="HTTP_ACCEPT_CHARSET"--> |
Список кодировок, воспринимаемых клиентом |
(none) |
| <!--#echo var="HTTP_ACCEPT_ENCODING"--> |
Список типов кодирования, принимаемых броузером |
(none) |
| <!--#echo var="HTTP_ACCEPT_LANGUAGE"--> |
Список языков, на которых принимается информация |
(none) |
| <!--#echo var="HTTP_HOST"--> |
Имя узла сервера |
jishi.h1.ru |
| <!--#echo var="HTTP_REFERER"--> |
URL документа, откуда пользователь попал на эту страницу |
(none) |
| <!--#echo var="HTTP_USER_AGENT"--> |
Данные о броузере клиента |
ia_archiver |
| <!--#echo var="DOCUMENT_NAME"--> |
Имя текущего документа |
ssi.html |
| <!--#echo var="DOCUMENT_URI"--> |
Путь к файлу от корня сервера |
Не приводится по вопросам безопасности |
| <!--#echo var="QUERY_STRING_UNESCAPED"--> |
Строка запроса, где символы облочки экранированы обратными слэшами |
string=vopros |
| <!--#echo var="DATE_LOCAL"--> |
Время на сервере |
Sunday, 06-Jan-2002 22:56:28 MSK |
| <!--#echo var="DATE_GMT"--> |
Время по Гринвичу |
Sunday, 06-Jan-2002 19:56:28 GMT |
| <!--#echo var="LAST_MODIFIED"--> |
Дата и время изменения файла |
Monday, 31-Dec-2001 01:41:08 MSK |