SSI прежде всего заценят web-дизайнеры, так как SSI даёт возможность
особенно не утруждаясь использовать уже готовые результаты.
Расшифровывается SSI как Server Side Includes (включения на стороне
сервера). Эти включения могут быть очень полезны в некоторых случаях.
Например, вам нужно выполнить казалось бы простую задачу: включить
один html документ в другой. Язык html не позволяет добиться такого
результата, а переделывать весь html код в CGI согласитесь, слишком
долго. При помощи SSI можно с лёгкостью добиться желанного результата.
Синтаксис SSI очень прост, он является обычной вставкой в html
документ:
Стоит заметить, что тэги <!-- и --> в html являются обычным
комментарием, и, если сервер не поддерживает SSI, то ваш броузер
просто проигнорирует их. Если же SSI сработает вместо этих тэгов, то
перед передачей файла клиенту будет выполнена подстановка, зависящая
от указанных элементов.
Рассмотрим возможные элементы:
echo.
Команда служит для вывода заданной переменной окружения. Имя выводимой
переменной задаётся параметром var. Например:
<!--#echo var="DOCUMENT_URL"-->
exec.
Исполняет команду или CGI-скрипт. Параметр cgi указывает на скрипт,
который будет запущен. Значением этого параметра должен быть
относительный виртуальный URL к скрипту. Параметр cmd указывает на
команду, которая выполнится сервером. Примеры:
fsize.
Данный элемент включает размер заданного файла. Сам файл задаётся
параметрами file или virtual. file - параметр, использующийся при
указании физического местоположения файла, virtual - относительного.
Примеры:
flastmod.
Данный элемент включает дату обновления заданного файла. Параметры
элемента: file и virtual. Их употребление аналогично элементу fsize.
Примеры:
include.
Данный элемент вставляет текст указанный документ, либо результаты
работы CGI-скрипта.Параметры элемента аналогичные: file или virtual.
Примеры:
SSI позволяет также выполнять подстановку условно, в зависимости от
каких либо условий. Синтаксис такой:
<!--#if expr="условие1"-->
Текст для условия1
<!--#elif expr="условие2"-->
Текст для условия2
<!--#else-->
Другой текст.
<!--#endif-->
Примеры использования условных подстановок:
1. Если значение переменной $a равно "test" установим HOME значение
"/home/test"
<!--#if expr="$a = test"-->
<!--#set var="HOME" value="/home/test"-->
<!--#endif-->
2. Проверка пути к документу.
<!--#if expr=""$DOCUMENT_URL" = "/home/test/index.html""-->
This is index.html of user test
<!--#if expr=""$DOCUMENT_URL" = "/home/test/file.html""-->
This is file.html of user test
<!--#else-->
This is not user test
<!--#endif-->
И напоследок, добавлю, что SSI будет работать только при расширении
shtml у документа.