Server Side Includes (SSI, динамические страницы)
Если страница, расположенная на сайте имеет расширение .shtml или .shtm, она будет расценена сервером, как динамическая. При выдаче страницы сервер будет искать в ней специальные директивы, чтобы заменить их на html-код.
Такая методика называется "server side includes" или "включение на стороне сервера" и часто сокращается до аббревиатуры "SSI". Вы можете почитать подробно об использовании SSI (httpd.apache.org/docs/2.4/howto/ssi.html) на сайте web-сервера Apache (англ).
Безусловно главным применением SSI является сборка сайта из различных блоков. SSI избавляет от необходимости повторять 1 и тот же код на многих страницах сайта. Рассмотрим это на примере подключения заголовка.
Если заголовок (шапка) сайта не меняется, сохраните ее в файле header.inc и положите в директорию /www. Теперь в любую страницу сайта мы можем вставить наш заголовок директивой:
<!--#include virtual=/header.inc-->
Изменив файл header.inc мы изменим заголовок на всех страницах, где он подключен через SSI. Такой метод позволяет отделять тексты страниц от дизайна и упрощает построение сложных сайтов. Теперь взгляните на пример размещения статьи:
<title>Заголовок статьи</title> <!--#include virtual=/style.css--> <!--#include virtual=/header.inc--> Текст статьи <!--#include virtual=/footer.inc-->
В примере используется подключение нескольких файлов:
Подключаемая страница должна располагается в директории /www или /sub/domain для суб-домена. Нельзя подключать страницу по относительному пути наверх: ../ В этом случае вы получите ошибку на месте подключения.
Правильные подключения:
<!--#include virtual=page.inc--> <!--#include virtual=dir/page.inc--> <!--#include virtual=/page.inc--> <!--#include virtual=/dir/page.inc-->
Неправильные подключения:
<!--#include virtual=../page.inc-->
<!--#include virtual=/www/page.inc-->
Избежав этих ошибок, можно построить сайт "из кирпичиков" и обновлять его без лишних хлопот.