К началу страницы

лучший хостинг тот, который о себе не напоминает

SSI (Server Side Includes) — описание, директивы, параметры

  • Общая информация.
  • Активация механизма Server-Side Includes.
  • Практическое использование SSI.
  • Общая информация

    Основным, наиболее простым, но в то же время чрезвычайно мощным инструментом поддержки больших наборов документов является SSI (Server-Side Includes - включения на стороне сервера). С помощью SSI можно не только в зависимости от некоторых условий выводить определенные части документа, не только формировать документ из заранее определенных кусочков, но и вставлять результат работы некоторого CGI сценария или программы прямо в документ.

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

    В стандартном дистрибутиве Apache есть модуль mod_include. Начиная с версии 1.2, он имеет расширенное количество директив и называется - XSSI (eXtended SSI). По умолчанию он включен в компиляцию.


    Активация механизма Server-Side Includes

    Мы предоставляем своим клиентам возможность использовать директивы SSI на тарифных планах «201», «202», «301», «302», «1С-Битрикс», а также на хостинге конфиденциальной информации; тарифные плаы «101» и «102» позволяют исполнять SSI инструкции только в режиме «NoExec».
    Любой документ, у которого будет установлен обработчик «server-parsed» будет сканироваться этим модулем, если включена опция «Includes». При малом количестве документов с SSI, лучше всего в файле конфигурации веб-сервера (в случае администрирования в автоматическом режиме данные строки уже присутствуют) указать следующее:

    AddType text/html .shtml 
    AddHandler server-parsed  .shtml
    и устанавливать у таких файлов расширение .shtml. Если же все или почти все документы будут иметь директивы SSI, то лучше в файле конфигурации указать:
    AddHandler server-parsed .html

    Однако стоит помнить, что в этом случае на сервер ляжет дополнительная нагрузка по проверке всех документов вида *.html.
    Также, следует включить в опции директории узла параметр Includes:

    Options Includes


    Практическое использование SSI

    Пример 1.

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

    <html> 
    <body>
    <p>Документ с баннером внизу страницы</p>
    <!--#include virtual="/cgi-bin/ibanner.pl?web_site" -->
    </body>
    </html>

    Программа или сценарий CGI, вставляемая с помощью SSI, ничем не отличается от стандартной CGI программы, за исключением того, что должен выдаваться не целый документ, а только кусок разметки.
    Вот текст упомянутого выше сценария:
     #!/usr/local/bin/perl 
    $login=$ENV{"QUERY_STRING"};
    print "Content-type: text/html\n\n";
    ($IP)=($ENV{"REMOTE_ADDR"}=~s/\.//g);
    srand($$+$IP+time);
    $seed=int rand(10000000);
    print "<a href=\"http://www.test.ru/cgi-bin/href/$login?$seed\">\n";
    print "<img src=\"http://www.test.ru/cgi-bin/banner/$login?$seed\" width=468 height=60 border=0>\n";
    print "</a>\n";

    Как видно из примера даже во включаемых сценариях необходимо выводить HTTP заголовок.
    В результате сканирования нашего простейшего документа пользователю будет возвращен примерно (с точностью до случайной величины) следующий документ:
    <html> 
    <body>
    <p>Документ с баннером внизу страницы</p>
    <a href="http://www.test.ru/cgi-bin/href/web_site?348593">
    <img src="http://www.test.ru/cgi-bin/banner/web_site?348593" width=468 height=60 border=0>
    </a>
    </body>
    </html>

    Пример 2.
    Вторым распространенным применением SSI является формирование страницы из шаблона. В простейшем случае - это документ в начало и  конец, которого вставляются шапка и подвал:
    <html> 
    <body>
    <head>
    <title>Test Page</title>
    </head>
    <!--#include virtual="/ssi/header.html" -->
    <h1>Тестовая страница</h1>
    <p>Некий текст</p>
    <!--#include virtual="/ssi/global_menu.html" -->
    <!--#include virtual="/ssi/footer.html" -->
    </body>
    </html>

    Вставляемые блоки не обязательно должны быть законченными, например, header.html может заканчиваться тэгом <td>, а global_menu.html или footer.html начинаться с тэга </td>. Таким образом, даже при определённой технической сложности шапки и подвала документа, редактируемый документ выглядит чрезвычайно просто, и его легко редактировать.

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

    Список всех директив SSI можно найти на http://httpd.apache.org/docs/1.3/mod/mod_include.html


    Проект компании RU-CENTER
    Служба круглосуточной технической поддержки:
    +7 (495) 994-46-01
    +7 (495) 737-06-01 (Москва)
    8 800 250-27-99
    8 800 555-46-01 (для регионов России)
    e-mail: support@nic.ru
    Заведите собственную почту от RU-CENTER


    © Региональный Сетевой Информационный Центр, 2006-2017