Компьютерная помощь
Документация
Клиенты
Контакты
Прайсы
Форум
|
|
Server Side Includes (SSI)
Что такое SSI.
SSI-набор команд web-сервера, позволяющий создавать HTML-документы
прямо на сервере без применения CGI-скриптов. Еще SSI-команды позволяют
запускать программы на сервере, выводить в HTML страничку значения
переменных окружения и вести статистику по дате изменения и размерам
файлов. Технология SSI разработана фирмой Questar Microsystems. Эту
технологию поддерживают такие web-серверы как Apache, Netscape, Spry Web и
Microsoft Internet Information Server (MS IIS).
Настройка Apache.
Для того, чтобы сервер Apache проверял файлы на наличие SSI-команд,
следует указать в его настройках расширение файлов, содержащих
SSI-команды. Это делается в файле httpd.conf, раскомментированием
следующих строк: AddType text/html
.shtml AddHandler server-parsed .shtml Для того, чтобы
сервер проверял все HTML-документы на наличие SSI-команд, изменим вторую
строку на: AddHandler server-parsed .shtml .shtm
.sht .html .htm
Теперь разрешим серверу выполнение SSI команд в каталоге вашей
страницы.Это делается в блоке операторов, начинающемся строкой: <Directory /> и заканчивающемся строкой </Directory>
<Directory /> Options Indexes
Includes AllowOverride All </Directory> Изменяем
строку Options Indexes на Options Indexes Includes
Команды SSI.
Команды SSI встраиваются в HTML-документ в виде комментариев,
например: <!--#include
file="menu.htm"--> Если в сервере отключено выполнение
SSI, он отправит браузеру пользователя файл в том виде, в каком он лежит
на сервере, а браузер просто проигнорирует закомментированные
SSI-команды.
- #include file
Включает в
HTML-документ содержимое указанного файла, находящегося в том же
каталоге. В документ можно вставлять файлы, содержащие команды
SSI. пример: <!--#include
file="menu.htm"--> В место, где расположена команда,
будет встроено содержимое файла menu.htm находящегося в том же
каталоге.
- #include virtual
Включает в
HTML-документ содержимое указанного файла, с указанием пути относительно
текущего каталога. пример: <!--#include
virtual="/price/price.txt"--> В место, где расположена
команда, будет встроено содержимое файла price.txt находящегося в
каталоге /price. <!--#include
virtual="/cgi-bin/p.pl"--> В место, где расположена
команда, будет встроен вывод скрипта p.pl
- #fsize file
Включает в
HTML-документ размер указанного файла. пример: Размер этого документа: <!--#fsize
file="ssi.shtml"--> выведет: Размер этого
документа: 10k
- #flastmod file
Включает в
HTML-документ время последней модификации указанного
файла. пример: Последний раз
изменен: <!--#flastmod
file="ssi.shtml"--> выведет: Последний раз
изменен: Wednesday, 14-Feb-2001 14:38:42 Московское время
(зима)
- #exec cmd
Запускает внешнюю
программу. пример: Список файлов
текущей директории: <!--#exec cmd="dir"-->
- #exec cgi
Запуск CGI-скрипта и
вставка в содержимое страницы его вывода. пример: <!--#exec
cgi="/cgi-bin/p.pl"-->
- #config errmsg
Изменение
стандартного собщения об ошибке. пример: <!--#config errmsg="Ошибка при выполнении
SSI-команды"-->
- #config sizefmt
Изменение
формата вывода размера файла. пример: Вывод размера файла в килобайтах: <!--#config
sizefmt="abbrev"--> <!--#fsize file="ssi.shtml"--> Вывод
размера файла в байтах: <!--#config
sizefmt="bytes"--> <!--#fsize
file="ssi.shtml"-->
- #config timefmt
Изменение
формата вывода даты и времени. пример: Последнее изменение документа: <!--#config
timefmt="%d.%m.%Y %H:%M:%S"--> <!--#flastmod
file="ssi.shtml"-->
выведет: 14.02.2001
14:38:42
Таблица параметров timefmt:
| Формат |
Описание |
Пример |
| %a |
Краткое название дня недели |
Mon |
| %A |
Полное название дня недели |
Monday |
| %b |
Краткое название месяца |
Feb |
| %B |
Полное название месяца |
February |
| %d |
День месяца |
02 |
| %D |
Дата в формате "%m/%d/%y" |
02/14/01 |
| %e |
День месяца |
1 |
| %H |
Часы в 24-часовом формате |
15 |
| %I |
Часы в 12-часовом формате |
03 |
| %j |
Порядковый номер дня года |
72 |
| %m |
Порядковый номер месяца |
02 |
| %M |
Минуты |
05 |
| %p |
AM|PM |
AM |
| %r |
Время в формате "%I:%M:%S %p" |
12:31:23 PM |
| %S |
Секунды |
23 |
| %s |
Время в секундах с 01.01.1970 |
765678984 |
| %T |
Время в формате "%H:%M:%S" |
12:31:23 |
| %U |
Порядковый номер недели года |
6 |
| %w |
Номер дня недели |
1 |
| %y |
Год в формате ГГ |
01 |
| %Y |
Год в формате ГГГГ |
2001 |
| %Z |
Временная зона |
MSK | Строка формата по умолчанию: "%A,
%d-%b-%Y %H:%M:%S %Z"
- #printenv
Вывод всех CGI и SSI
переменных окружения. Работа с CGI переменными разрешена только если
сервер разрешает запуск CGI-скриптов. пример: <!--#printenv-->
- #set var
Устанавливает значение
переменной окружения. пример: Сменим
адрес администратора сервера: <!--#set var="SERVER_ADMIN"
value="valery@ropnet.ru"-->
- #echo var
Вывод значения
переменной окружения. пример: <!--#echo
var="SERVER_NAME"-->
- #if/else
Условное управление
выводом. Синтаксис команды: <!--#if
expr="условие1" --> команда, которая будет выполняться если
условие истинно <--#elif expr="условие2" --> команда,
которая будет выполняться, если условие1 ложно, а условие2
истинно <--#else --> команда, которая будет выполняться,
если все условия ложны <--#endif --> где условие
имеет формат: (строка1 оператор сравнения строк
строка2) Условие может состоять и из одной строки. В этом
случае оно является истинным, если строка не пустая. Если строка2
заключена в "/", то условие истинно, если в строке1 встретится хоть одно
вхождение строки2. Для группирования условий используются
скобки. Операторы сравнения: == равно != не
равно < меньше > больше !< не меньше !> не
больше пример: Вы используете
браузер: <!--#if expr="$HTTP_USER_AGENT=/Nav/" --> Netscape
Navigator <!--#elif expr="$HTTP_USER_AGENT=/MSIE/ ||
$HTTP_USER_AGENT=/Mozilla/" --> Internet Explorer <!--#else
--> Не определен (<!--#echo var="HTTP_USER_AGENT"
-->) <!--#endif -->
выведет тип вашего
браузера
- #break
Остановка вывода.
- #email
Отправляет письмо,
содержание которого задано атрибутом message, по адресу, определенному
атрибутом toaddress, если данный адрес и host, заданный атрибутом tohost
(данный атрибут может отсутствовать), реально
существует. пример: <!--#email
tohost="www.greentown.narod.ru" message="Thanks"
toaddress="valery@ropnet.ru" subject="SSI"-->
Переменные окружения.
Переменные CGI
- DOCUMENT_ROOT
- GATEWAY_INTERFACE
Имя и версия
CGI web-сервера
- HTTP_ACCEPT
Разделенный
запятыми список MIME-типов, понимаемых браузером клиента
- HTTP_ACCEPT_ENCODING
- HTTP_ACCEPT_LANGUAGE
Список
языков, доступных браузеру клиента
- HTTP_CONNECTION
- HTTP_HOST
- HTTP_USER_AGENT
Имя браузера
клиента
- REMOTE_ADDR
IP адрес удаленного
клиента
- REMOTE_PORT
- SCRIPT_FILENAME
- SCRIPT_NAME
Имя программы для
выполнения в CGI запросе
- SERVER_ADMIN
Почтовый адрес
администратора web-сервера
- SERVER_NAME
Имя компьютера, на
котором работает web-сервер
- SERVER_PORT
IP порт WWW (HTTP)
сервера
- SERVER_PROTOCOL
Имя и версия
HTTP сервера (name/version)
- SERVER_SIGNATURE
- SERVER_SOFTWARE
Название
программы web-сервера
- QUERY_STRING
Строка, полученная
от клиента
- REQUEST_METHOD
Тип метода
запроса к серверу
- REQUEST_URI
Переменные SSI
- DATE_GMT
Текущее время по
Гринвичу (GMT, Greenwich Mean Time)
- DATE_LOCAL
Местное время и
дата
- DOCUMENT_NAME
Имя документа,
запрошенного клиентом
- DOCUMENT_URI
Путь к документу
от базовой директории сервера
- LAST_MODIFIED
Дата последнего
изменения документа
|
|