
Сайт по кирпичикам
Спецвыпуск хакер, номер #002, стр. 002-042-2
Синтаксис 1
Главный оператор, которым придется пользоваться чаще всего - это "include". В общем случае SSI директива имеет вид: <!--#include virtual="myfile.txt"-->.
<!-- --> - это стандартный комментарий (если вдруг сервер не сможет распознать команду или не поддерживает ее, то она просто будет пропущена);
#include - собственно сама команда;
virtual - указывает на "вид" пути к файлу;
myfile.txt - имя вставляемого файла.
Естественно, что имя у включаемого файла может быть любым - с любым расширением (или без оного). Главное, - это "начинка" файла. Совершенно понятно, :) что это должен быть HTML.
Касательно "вида" пути (команда virtual). Если сервер проектируется для Web'a (скорее всего), то эта команда именно так и выглядит. Это, конечно, накладывает некоторые ограничения на то, чтобы удобно разместить вкладываемый файл. В этой команда нельзя применять гиперссылки (хотя это в любом случае дурной тон).
Однако иногда бывает полезно показать работу сайта непосредственно на "рабочем" компьютере, и тогда можно (нужно) использовать вместо virtual команду file. При этом адрес можно задавать в виде абсолютного адреса (C:\VasyaPupkin\Site\XXX\myfile.txt). Но это все-таки экзотика.
В общем случае на команде virtual и заканчивается общепринятое использование Server Side Includes - Включений на стороне сервера. И, наверное, это справедливо - что еще нужно знать, чтобы собирать сайт из кусочков?
Но для тех, кто понимает толк в сайтостроительстве, самое интересное начинается там, где останавливаются все остальные.
Так давайте на всю катушку использовать те возможности, которые дает SSI (а их, поверьте мне, не мало).
Синтаксис 2
Условно говоря, у SSI есть две большие области применения: первая - это вставлять внешние файлы, а вторая - вставлять так называемые "переменные окружения".
Делается это командой вида: <!--#echo var="echo_command"-->, где echo_command - переменная величина и может принимать порядка 30 значений. Все я толковать не буду (справочник по SSI можно найти на Web'е без труда), но самые важные - обязательно:
<!--#echo var="DOCUMENT_NAME"--> - выдаст на экран локальное имя текущего документа, к примеру: "ya_garni_peretz.htm" (очень полезен для тех, у кого частый склероз);
<!--#echo var="DOCUMENT_URL"--> - покажет локальный путь к документу, считая от корневой директории Web-сервера, т.е. адрес типа: /win/mydocs/ssi-tutor/baklan.htm.
<!--#echo var="DATE_LOCAL"--> - выведет текущие, локальные дату и время;
<!--#echo var="LAST_MODIFIED"--> - покажет дату последней правки текущего файла;
<!--#echo var="REMOTE_ADDR"--> - выведет ip вошедшего на страницу;
<!--#echo var="REMOTE_HOST"--> - выведет имя компьютера гостя. Очень простой трюк для определения - работает ли компьютер с использованием в настройках proxy: зайти на свою собственную страницу и прочитать адрес, полученный в ответ на команду REMOTE_HOST.
<!--#echo var="SERVER_SOFTWARE"--> - имя используемого провайдером HTTP сервера; иногда это бывает очень полезно знать; :)