Как Вы заметили, большинство страниц этого сайта имеют разное содержание, а некоторые блоки остаются неизменными. Например, навигация по сайту оформлена одинаково. Все те, кто когда либо создавал веб страницы, задумывался, как было бы хорошо, если повторяющиеся фрагменты HTML кода писать только один раз и они вставлялись автоматически на все страницы сайта. Но, обычный HTML не позволяет так делать. На помощь приходит SSI (Server-Side Includes, включения на стороне сервера). Эта технология позволяет добавлять контент во все страницы незаметно для пользователя. Давайте поэкспериментируем с SSI на примере, и Вы убедитесь в необходимости использования данной технологии. Размеры страниц заметно уменьшатся, отпадет надобность в повторении фрагментов с одинаковым содержанием для всех страниц, затраты времени по изменению значительно уменьшатся.
Создадим страницу в коде HTML которой прописываем любое содержание. Можно поставить код баннера или просто что то написать. Это будет выглядеть так: <h1>Привет всем!</h1>. Сохраним этот документ под названием content.html. Обратите внимание, что фаил content.html не содержит никаких тегов типа <head>, <html>, <body>, только то, что Вы хотите видеть у себя на сайте.
Откройте в редакторе любую страницу Вашего сайта. Например, главную Index.html и включаем в код страницы (между тегами <body>…</body>, то есть в тело) такой код: <!--#include file="content.html"--> То есть в любое место где Вы хотите увидеть «Привет всем!». Это будет выглядеть так:
Файл index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Название вашей страницы</title>
</head>
<body>
<!--#include file="content.html"-->
</body>
</html>
Заливаем файлы index.html и content.html на сервер Вашего сайта. Обычно это папка public_html/.
Работоспособность страниц с SSI - командами проверить невозможно в Вашем браузере просто с диска компьютера. SSI - команды понимает только вебсервер - поэтому для проверки их работоспособности вам придётся выгрузить их на сервер. Но, если Вы используете в качестве HTML редактора великолепную программу Adobe Dreamweaver все на много проще. Он заменяет различные программы для тестирования в качестве вебсервера.
Открываем браузер. Вводим адрес Вашего сайта. Открывается главная страница сайта. Если сервер, который Вы используете в качестве хостинга, поддерживает технологию SSI, то в том месте, где стоит код (шаг 2),Вы увидите Привет всем!
Если не увидели ни чего или отображается надпись: [an error occurred while processing this directive], это следствие того, что для вебсервера Apache, технология SSI не является обязательной. Проделываем следующие действия: Находим у себя на сервере фаил .htaccess, обычно в корневой папки. Копируем его на компьютер. Открываем редактором и добавляем запись (к уже существующим) AddHandler server-parsed .html. Заливаем обратно на сервер.
Как вы могли увидеть, SSI-команды вставляются в текст страниц, как обычные комментарии, внутри тэга <!--#SSI-команда="параметры" -->. Единственное отличие от простого комментария - в начале должен обязательно присутствовать символ "#".
Ещё одно возможное применение SSI - с его помощью можно выводить различную информацию о странице. Команда <!--#flastmod file="creating-ssi.shtml"--> вставит в страницу число раз, когда эта страница обновлялась.
Указывает серверу, в каком формате выдавать дату командой flastmod. По умолчанию это что-то вроде "Sunday, 10-Sep-2000 17:58:59 Московское время (лето)". Вам же может захотеться получить дату в виде день/месяц/год. Для этого с командой config timefmt используется нужное сочетание следующих возможных параметров:
<!--#config timefmt="формат"-->
%a - сокращенное название дня недели.
%A - полное название дня недели.
%b - сокращенное название месяца.
%B - полное название месяца.
%c - формат даты и времени по умолчанию.
%d - день месяца (от 01 до 31).
%D - дата в формате мм/дд/гг. "%m/%d/%y" 12/31/99
%e - день месяца без ведущего нуля (от 1 до 31).
%H - часы в 24-часовом формате (от 00 до 23).
%I - часы в 12-часовом формате (от 00 до 12).
%j - день года (от 001 до 366).
%m - номер месяца (от 01 до 12).
%M - минуты (от 00 до 60).
%p - выводит AM или PM в зависимости от времени и заданного формата.
%r - время с автоматическим добавлением AM или PM.
%S Секунды 34
%s Время в секундах с 01.01.1970 957228726
%T - время в формате чч:мм:сс.
%U Неделя года 16
%w Номер дня недели 4
%Y Год в формате ГГГГ 1999
%Z Временная зона
Пример:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Название вашей страницы</title>
</head>
<body>
<!--#config timefmt="Дата: %d-%m-%y, время: %T"-->
</body>
</html>
Результат: 21/11/2000, 00:42:33
Изменяет формат вывода значения размера файла. <!--#config sizefmt="abbrev"--> заставляет выводить размер файла в килобайтах ( 26k), а <!--#config sizefmt="bytes"--> - в байтах (26,576)
Обратите внимание на то, что команды #config sizefmt и #config timefmt влияют на все связанные с ними SSI-команды от того места, откуда они были вызваны и до самого конца страницы. Поэтому каждый вызов команд #flastmod и #fsize снабжайте своей командой #config - так проще и спокойнее.
Отображает дату последней модификации указанного файла. Формат даты устанавливается через директиву config и параметр timefmt. Синтаксис следующий.
<!--#flastmod file="URL" | virtual="URL"-->
Путь к файлу определяется с помощью параметров file или virtual, которые имеют те же функции, что и для директивы include.