Основы технологии Server Side Includes или SSI.

Я хочу рассказать вам об основах технологии server side includes или ssi.
ssi переводится как "включения со стороны сервера". Эта технология помогает сохранить уйму времени при создании сайта и закачке его на сервер. Вообще ssi призвана, насколько это возможно, облегчить работу web-мастера.

Вот, к примеру, вполне реальная ситуация:
У вас есть сайт, который, разумеется, не использует ssi, с числом страниц близким к:, да возьмем хотя бы 50 страниц. Итак, на каждой странице вы, как хороший web-мастер, заботящийся о своих посетителях, разместил текстовое меню. И вдруг по каким-то причинам название какого-то раздела изменилось, а быть может, вам захотелось добавить новый. Что же теперь заново открывать все пятьдесят страниц и переписывать все снова и снова?! В нашем случае это, к сожалению, единственное решение, правда, некоторые хорошие редакторы смогут облегчить эту непосильную ношу (и еще как облегчить!, homesite, например).

Так вот, такой проблемы у вас не произошло бы, еcлu вы использовали технологию ssi. Объясняю: если бы вместо текстового меню на всех страницах было бы написано что-то вроде

<!--#include virtual="/ssi/menu_txt.html" -->

А в файле "(www)/ssi/menu_txt.html" было бы содержание этого меню, то для того, что бы добавить или изменить раздел нужно было бы только поменять содержание всего лишь одного файла menu_txt.html. Как вы, наверно, уже догадались во все страницы вместо "комментария"

<!--#include virtual ="/ssi/menu_txt.html" -->

будет вставлен код из menu_txt.html.

Синтаксис ssi директив.

Синтаксис ssi директив таков:
Все директивы заключаются в комментарии

<!-- :[пробел]-->

, главным отличием ssi директивы от комментария является символ "#" сразу(!) после "<!--". То есть если быть точным, то все директивы ssi заключаются в

<!--#:[пробел]-->

и никак иначе!

Вот список некоторых ssi "функций" (они сразу пишутся после символа "#")

include

Включает текст (код, содержание) указываемого документа/файла в данный документ. Положение файлов на сервере указывается с помощью следующих атрибутов:

file - необходимо указать путь относительно данного документа, то есть включаемый документ/файл должен находиться либо в том же каталоге, что и данный документ, либо каталогами ниже/выше (some_catalog/, ../some_catalog).
virtual - можно указывать как относительный (как в случае с file), так и абсолютный путь (может содержать /some_catolog или ../some_catalog).

include позволяет включать результат работы cgi скриптов, а также обращаться к ним с какой-то заданной строкой запроса. Например,

<!--#include virtual ="/cgi-bin/script.cgi?action=print&what=ok" -->

set

Устанавливает значение какой-либо переменной. Переменная объявляется с помощью атрибута var, а её значение задается с помощью атрибута value.

<!--#set var="a" value="variable" -->

переменная a будет иметь значение variable.
А можно и так:

<!--#set var="b" value="var" -->
<!--#set var="c" value="ble" -->
<!--#set var="a" value="${b}ia${c}" -->

Переменная a будет равна varia${c}
Для того, что бы подставить переменную необходимо её заключить в фигурные скобки и перед всем этим поставить $. Если же вы хотите что бы знак доллара ($) отображался просто как символ, и не обозначал переменную, то поставьте перед ним слеш ()

echo

выводит значение переменной, указанной в атрибуте var.

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

то есть вместо этого кода вставляется значение переменной a

Примеры использования ssi.

Вот содержание главного документа.
main.html

<!--#set var="title" value="Тестовая страница" -->
<!--#set var="keywords" value="ключевые слова" -->
<!--#set var="description" value="Описание этого документа" -->
<!--#include virtual="head.html" -->

<!--#include virtual="body.html" -->

<!--#set var="copyright" value="copyright &copy;" -->
<!--#include virtual="down.html" -->

А это содержание включаемых файлов.
head.html

<html>
<head>
<title>Заголовок:<!--#echo var="title" --></title>
<meta http-equiv="content-type" content="text/html">
<meta name="description" content="Описание: < !--#echo var="description" -->">
<meta name="keywords" content="документ, <!--#echo var="keywords" -->, html">
</head>
<body>

body.html

<h3>Тело документа</h3>

down.html

<p align="center"><font size=2>
<!--#echo var="copyright" --></font></p>
</body>
</html>

Как вы смогли убедиться из данного примера, пользоваться ssi не так уж и трудно, и более того очень полезно.

Технические аспекты использования ssi.

Стоит несколько слов сказать о техническом обеспечении, которое необходимо для использования ssi. Если вы просто создадите файл на своем локальном диске с корректными ssi командами и откроете его в вашем браузере, то никаких включений не произойдет, т.к все выражения типа <!-- :. --> для браузера являются чистой воды комментариями. Так называемые "включения" происходят еще на стадии обработки документа сервером, прежде чем послать его пользователю. В нашем случае такого этапа (обработка документа сервером) вообще нет. Так вот для того, что бы вы смогли полностью ощутить все преимущества ssi на своем локальном компьютере, вам нужен "домашний" web-сервер.
И вот еще что: не каждый провайдер, предоставляющий хостинг, поддерживает ssi. Обычно это проблема бесплатных хостингов. Но и некоторые из них, если уж и позволяют использовать ssi, то требуют за это некую плату, например, размещение рекламы на сайте.

Вместо заключения хочу сказать что, технология ssi была специально разработана и создана для того, что бы сэкономить ваше время, а, следовательно, и деньги. Так что в любом случае старайтесь использовать ssi в своих проектах, как говорится, на полную катушку.

17 января 2007 в 19:29
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок