SSI поддерживает несколько директив, предназначенных для разных целей и расширяющих возможности по модификации веб-страниц.

Все директивы записываются в следующем виде.

<!--#директива параметр="значение"-->

Каждая директива начинается с ключевого набора <!--#, пробелы между символами не допускаются. После символа решетки идет указание директивы, а возможные параметры указываются через пробел.

Имена директив, которые используются в SSI, описаны далее.

Директива config
Позволяет управлять некоторыми опциями SSI, такими как задание формата вывода даты, времени, размера файла и установка текста сообщения о возникновении ошибки.

Параметр errmsg
errmsg устанавливает сообщение, отображаемое при возникновении ошибок. По умолчанию выводится текст [an error occurred while processing this directive], но вы можете поменять его на свой, да еще написав по-русски. Синтаксис следующий.

<!--#config errmsg="Сообщение об ошибке"-->

Параметр timefmt
Параметр timefmt устанавливает формат даты и времени для директивы flastmod. Синтаксис следующий.

<!--#config timefmt="формат"-->

Для контроля выводимой информации могут применяться следующие шаблоны.
%a - сокращенное название дня недели.
%A - полное название дня недели.
%b - сокращенное название месяца.
%B - полное название месяца.
%c - формат даты и времени по умолчанию.
%d - день месяца (от 01 до 31).
%D - дата в формате мм/дд/гг.
%e - день месяца без ведущего нуля (от 1 до 31).
%H - часы в 24-часовом формате (от 00 до 23).
%I - часы в 12-часовом формате (от 00 до 12).
%j - день года (от 001 до 366).
%m - номер месяца (от 01 до 12).
%M - минуты (от 00 до 60).
%p - выводит AM или PM в зависимости от времени и заданного формата.
%r - время с автоматическим добавлением AM или PM.
%T - время в формате чч:мм:сс.
%y - год (от 00 до 99).
%% - вывод символа %.

Разрешается совмещать между собой любые шаблоны, а также писать дополнительные символы. В примере 2.1 показано использование параметра timefmt.
Пример 2.1. Вывод даты и времени модификации файла.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

<!--#config timefmt="Дата: %d-%m-%y, время: %T"-->
<!--#flastmod file="gtm.css"-->

</body>
</html>

Параметр sizefmt
Параметр sizefmt определяет формат вывода размера файла. Синтаксис следующий.

<!--#config sizefmt="bytes | abbrev"-->

Значение bytes отображает размер файла в байтах (3,152), abbrev
- в килобайтах (3k) или мегабайтах (6,1M), в зависимости от объема документа. В примере 2.2 показано использование параметра sizefmt.
Пример 2.2. Формат вывода размера файла

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

<!--#config sizefmt="abbrev"-->
Объем файла musa.mp3 - <!--#fsize file="musa.mp3"-->

</body>
</html>

Директива include
Директива include вставляет содержимое другого файла в текущий документ. К файлу обязательно должен быть открыт доступ, иначе он не будет показан. У директивы include имеется два параметра: file и virtual.

Параметр file
Указывает путь к файлу относительно текущего документа. Можно использовать как текстовые файлы, так и HTML-документа, а также включать другие SSI-файлы (обычно с расширением shtml). Синтаксис использования следующий.

<!--#include file="URL"-->

Параметр virtual
Задает виртуальный путь к документу на сервере. Синтаксис следующий.

<!--#include virtual="URL" -->

Между параметрами file и virtual есть определенная разница. Если вы применяете путь к документам относительно корня сайта (такой путь характеризуется слешем вначале, например /file.html), то следует использовать параметр virtual. При указании относительного пути, следует воспользоваться параметром file (пример 2.3).

Пример 2.3. Путь к файлу

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

<!--#include virtual="/inc/header.html"-->
...
<!--#include file="../inc/footer.html"-->

</body>
</html>

Директива echo
Директива echo предназначена для вывода значений переменных и даты, формат которой определяется параметром timefmt директивы config. У echo единственный параметр var, он определяет выводимое значение.

<!--#echo var="значение для вывода"-->

В примере 2.4 показано использование директивы echo для вывода переменной окружения.
Пример 2.4. Вывод значения переменной окружения

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

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

</body>
</html>

Директива fsize
Директива fsize отображает размер определенного файла. Формат вывода задается с помощью параметра [cplor=green]sizefmt[/color] директивы config. Синтаксис использования следующий.

<!--#fsize file="URL" | virtual="URL"-->

Путь к файлу определяется с помощью параметров file или virtual, которые имеют те же функции, что и для директивы include.
Директива flastmode
Отображает дату последней модификации указанного файла. Формат даты устанавливается через директиву config и параметр timefmt. Синтаксис следующий.

<!--#flastmode file="URL" | virtual="URL"-->

Путь к файлу определяется с помощью параметров file или virtual, которые имеют те же функции, что и для директивы include.
Директива exec

Директива exec
вставляет результат выполнения команды или CGI-программы в HTML-документ. Эта директива включает два параметра: cmd и cgi.
Параметр cmd

Запускает указанную командную строку с использованием локального интерпретатора.

<!--#exec cmd="команда"-->

Параметр cgi

Выполняет CGI-программу и результат ее выполнения вставляет в указанное место. В качестве параметра указывается адрес программы.

<!--#exec cgi="URL"-->

В примере 2.5 показано одно из применений параметра cgi.

Пример 2.5. Использование директивы exec

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>

Всего прочитало эту страницу <!--#exec cgi="/cgi-bin/counter.cgi"--> человек.

</body>
</html>

В данном примере запускается программа counter.cgi, которая подсчитывает число посетителей данной страницы и записывает его в файл или в базу данных. После этого результат отображается в месте, где стоит строка <!--#exec cgi="/cgi-bin/counter.cgi"-->.