Справочник Веб-дизайнера: Директивы SSI

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы
Красносельский
Константин
Константинович

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Компьютер и программы

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Веб-дизайн

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Справочники

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Документация по CSS1

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Настройка файла .htaccess

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Коды ошибки http сервера

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Подстановочные символы и регулярные выражения

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Спецификация файла robots.txt

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы SSI – Server Side Includes

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Таблица кодировки символов кириллицы

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Нестандартные символы в HTML

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Вторая таблица символов HTML

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Советы начинающим

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Советы начинающим Веб-дизайнерам: Что, где и зачем.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Правила плохого тона

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы WEB-уловки

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Камень предкновения: верстка таблицами или блоками?

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Рекомендации по разработке веб сайта

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Анализ WEB-конъюнктуры. Создание лучшего сайта и его раскрутка.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Анализ WEB-конъюнктуры

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Предисловие

Приручение поисковых машин

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Уровень документа - все гениальное просто

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Благоустройство нор для поисковых червей или как водить пауков по нашей паутине

Ускорение индексации сайта

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Если гора не идет к Магомету

Индекс цитирования

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Что это такое и с чем его едят

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Приобретение веса в глазах общественности

Послесловие

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Последние замечания по интернет-раскрутке

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Приложения

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы А: «Рекомендации лучших пауководов»

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Краткий комментарий.

Советы специалистов поисковой системы Rambler.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Использование файлов robots.txt.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Часто задаваемые вопросы.

Советы специалистов поисковой системы Aport.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Регистрация сайта в Апорте.

Советы специалистов поисковой системы Yandex.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Добавление страниц

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Индексирование

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Положение страницы на выдаче

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Поиск со своей страницы

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Ответы на часто задаваемые вопросы

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Б: «1000 сверх-сайтов Рунета»

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы 1000 сверх-сайтов Рунета

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы В: «Сто наиболее популярных поисковых слов»

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Сто наиболее популярных поисковых слов

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Г: «Где это сделать?»

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Где это сделать?

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Д: «Практическое руководство!!!»

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Краткий комментарий.

Окна, ссылки и меню.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Ссылки и окна. Внешний вид и внутреннее содержание.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Организация ссылок. Всевозможные оглавления.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Если вам не нравятся фреймы, значит, вы не умеете их готовить.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Меню из выпадающих списков (javascript и CSS).

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Многоуровневое раскрывающееся меню (javascript и CSS).

Работа с базами данных.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Обработка баз данных браузером посетителя

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Обработка баз данных сервером (PHP)

Взаимодействие с посетителем

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Отправка писем с веб-страницы.

Формы

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Методы форм.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Создание на сайте PHP голосования.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Регистрация и контроль посетителей (PHP).

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Интерактивность материала.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Создание гостевой книги на PHP.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Удаление записей из текстовых баз (PHP).

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Заргузка файлов на сервер по HTTP-протоколу (PHP).

Разное.

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Псевдослучайные элементы (PHP, javascript).

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Точное определение имени и версии браузера с помощью JavaScript, SSI или PHP

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Клоакинг и технология «Входных дверей».

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Отложенное выполнение и выполнение с заданным интервалом (javascript)

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Информация о размере, дате, собственные счетчики и протоколы посещений

 

 

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Консультации

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Экспорт и импорт новостей

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы PHP chmod – права доступа к файлам

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы WEB 2.0 – миф, или реальность?

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Давно забытый AJAX

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Способы хранения веб-страниц: документы FrontPage или базы данных

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Как заработать на своем сайте?

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы FTP клиент, как настроить Total Commander

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Мониторинг веб сайтов и анализ поисковых запросов

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Документация по Веб-дизайну

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Желающим скачать PHP скрипт или JavaScript

 

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Литература и поэзия

ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы Гуманитарные науки

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Хронология материалов

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Обращение к посетителям

Шрифт Font Шрифты Fonts скачать Скачать шрифты

Реферат по психологии религии логике информатике. рефераты контрольные курсовые работы скачать на халаву психология религия информатика халява логика контрольная курсовая работа Скачать рефераты

Сайты достойные внимания: Web-дизайн программирование документация руководство книга для любителей музыки статьи о создании музыки с помощью компьютера обзоры музыкальных программ музыка в mp3 формате Крымский тур-оператор Фонд «Боспор» Боспор Керчь фестиваль Боспорские агоны рекламная фирма кондиционер частный отель «Казантипская хижина» Азовске побережье Керченского полуострова Украина Крым Достойно внимания

Создание web сайта на заказ Создание web сайта на заказ

Создание, разработка web сайта на заказ. WEB-design Создание веб сайтов (цены)

web Сайты, созданные Красносельским К. К. Веб-дизайн разработка сайтов на заказ. WEB-design Веб-сайты, созданные мной (потенциальным заказчикам)

Полезные ссылки Полезные ссылки

Красносельский К. К. Компьютер Windows DOS система реестр BIOS программы Веб-дизайн PHP Perl CSS HTML CGI Java JavaScript музыка поэзия стихи тексты песен Психология философия психоанализ психиатрия логика сознание разум мышление интуиция развитие человек реферат религия информатика Об авторе

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Статистика сайта

Показать фреймы

 

Web На сайте

 

 

ТаблицейБлоками.

Справочник Веб-дизайнера: Директивы SSI

Последняя модификация: 04.07.2008 г

Страница загружена с адреса: http://webdesign.site3k.net/docs/ssi.html

SSI - Server Side Includes. Учебник

  1. Директивы SSI
  2. Операции и операторы SSI
  3. Особенности SSI скриптов
  4. Область применения SSI
  5. Пример из жизни

Директивы SSI

В начале перечислю используемые в SSI директивы, чтобы дальнейший текст понимали не только те, кто свободно владеет SSI, но и новички. Директив совсем не много:

 

#include file – включает текст другого файла в текущий файл. Если это cgi-скрипт, запускает его и вставляет в страницу выданный им результат.

Имя включаемого файла не должно содержать путь (он должен находиться в одном каталоге с включающим файлом), но может содержать параметры типа myscript.shtm?myparam=1.

Например: <!--#include file="ssi.html" -->

 

#include virtual – подобно #include file включает текст другого файла в текущий файл или запускает cgi-script. В отличие от #include file может содержать относительный или абсолютный путь без названия протокола (HTTP://) и доменного имени (webdesign.site3k.net) – то есть, не может указывать на файл другого сайта (для экспорта файлов другого сайта применяется ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы PHP).

В директиве допускаются пути типа:

example/_ssi.html – указывает на файл _ssi.html, находящийся в подкаталоге example текущего каталога.

../_ssi.html – указывает на файл _ssi.html, находящийся в каталоге, в котором вложен текущий (родительском).

/_ssi.html – указывает на файл _ssi.html, находящийся в корневом каталоге сайта (для http://webdesign.site3k.net/ это файл http://webdesign.site3k.net/_ssi.html).

Например: <!--#include virtual="_ssi.html" -->

 

#fsize file – Вставляет размер указанного файла. Файл, размер которого определяется, должен находиться на том же сайте, что и файл, содержащий данную инструкцию. Более того, он должен находится либо в том же каталоге, либо во вложеном каталоге.

Например: <!--#fsize file="ssi.html" --> Выведет размер данного файла: 35K.

Формат размера определяется по SSI-инструкции #config sizefmt.

 

#fsize virtual – Вставляет размер указанного файла. В отличие от #fsize file может содержать относительный или абсолютный путь без названия протокола (HTTP://) и доменного имени и, таким образом, указывать на файл в другом каталоге того же сайта.

Например: <!--#fsize virtual="/docs/ssi.html" --> Выведет размер данного файла: 35K.

Формат размера определяется по SSI-инструкции #config sizefmt.

 

#flastmod file – Вставляет дату последней модификации указанного файла. Файл, дата модификации которого определяется, должен находиться на том же сайте, что и файл, содержащий инструкцию. Так же, он должен находится либо в том же каталоге, либо во вложеном каталоге.

Например: <!--#flastmod file="ssi.html" --> Выведет дату последней модификации данного файла: 04.07.2008 г.

Формат даты определяется по SSI-инструкции #config timefmt.

 

#flastmod virtual – Вставляет дату последней модификации указанного файла. В отличие от #flastmod file может содержать относительный или абсолютный путь без названия протокола (HTTP://) и доменного имени и, таким образом, указывать на файл в другом каталоге того же сайта.

Например: <!--#flastmod virtual="/docs/ssi.html" --> Выведет дату последней модификации данного файла: 04.07.2008 г.

Формат даты определяется по SSI-инструкции #config timefmt.

 

#exec cmd – Запускает внешнюю программу и вставляет в содержимое страницы результат ее выполнения.

Например, <!--#exec cmd="myprog" -->

 

#exec cgi – Подобно #exec cmd запускает cgi-скрипт и вставляет в содержимое страницы результат его выполнения.

Например, <!--#exec cgi="/cgi-bin/example.cgi" -->

Однако многие дизайнеры рекомендуют использовать для этого #include file или #include virtual, так как #exec cgi может не работать на некоторых серверах.

 

#config errmsg – определяет сообщение, выводящееся в текст при возникновении ошибки. Поскольку сообщение выводится прямо в текст страницы, может иметь смысл привести его к пустой строке (<!--#config errmsg="" -->) или попросить посетителя сообщить автору об ошибке (<!--#config errmsg="При открытии страницы произошла ошибка. Пожалуйста, сообщите об этом по адресу: mymail@myserver.ru" -->).

 

#config timefmt – определяет формат даты для команды #flastmod file, используя следующие параметры:

ФорматОписаниеПример
ФорматОписаниеПример
Формат SSI-директивы #config timefmt
%aКраткое название дня неделиMon
%AПолное название дня неделиMonday
%bАббревиатура названия месяцаDec
%BПолное название месяцаDecember
%dДень месяца01 (не 1)
%DДата в формате "%m/%d/%y"12/31/99
%eДень месяца13
%HЧасы в 24-часовом формате13
%IЧасы в 12-часовом формате01
%jДень года235
%mНомер месяца01
%MМинуты03
%pAM/PM (до полудня/после)AM
%rВремя в формате "I:M:S p"11:35:46 PM
%SСекунды34
%sВремя в секундах с 01.01.1970957228726
%TВремя в формате "%H:%M:%S"14:05:34
%UНеделя года16
%wНомер дня недели4
%yГод в формате ГГ99
%YГод в формате ГГГГ1999
%ZВременная зонаMSK

В результате, не подготовленная команда <!--#flastmod file="ssi.html" --> дает следующий вывод: 04.07.2008 г

И эта же команда, после SSI директивы <!--#config timefmt="%d.%m.%Y г" -->, выдаст: 04.07.2008 г

 

#config sizefmt – определяет формат размера для команды #fsize file. <!--#config sizefmt="abbrev" --> настраивает на вывод размера файла в килобайтах ( 35K), а <!--#config sizefmt="bytes" --> – в байтах (35,763)

 

#printenv – Подобно команде SET старого, доброго DOS-а, выводит текущие значения переменных окружения, такие как:

HTTP_USER_AGENT – название браузера, которым пользуется посетитель.

REMOTE_ADDR – IP-адрес посетителя.

REMOTE_HOST – адрес посетителя в нормальной форме.

SERVER_ADDR – IP-адрес сайта.

SERVER_NAME – адрес сервера.

CHARSET_HTTP_METHOD – протокол ((none))

REQUEST_METHOD – метод запроса страницы (GET)

HTTP_HOST – имя сайта (webdesign.site3k.net)

REQUEST_URI – вся строка запроса, без указания протокола и имени сайта (/noframe/docs/ssi.html)

QUERY_STRING – все, что находилось в адресной строке после вопросительного знака (обычно это параметры форм) Попробуйте вызвать эту страницу с какими-то параметрами после вопросительного знака и вы увидете их здесь ()

SCRIPT_NAME – полный путь к странице от корня сайта (/docs/ssi.html). Сочетание http://, HTTP_HOST и SCRIPT_NAME даёт привычный адрес страницы http://webdesign.site3k.net/docs/ssi.html).

DOCUMENT_NAME – только название файла. (ssi.html)

HTTP_REFERER – страница, с которой перешли на эту ((none))

SCRIPT_FILENAME – полный путь к странице на сервере (/home/site3k/public_html/webdesign/docs/ssi.html)

SERVER_SOFTWARE – название сервера и установленных модулей.

SERVER_ADMIN – почтовый адрес владельца сервера, указанный при установке.

DATE_LOCAL – сегодняшнее время и дата в вашем часовом поясе.

DATE_GMT – то же, но по Гринвичу.

LAST_MODIFIED – дата и время последнего обновления страницы.

Практическое применение команда <!--#printenv --> имеет только для отладки страницы, что очень важно, учитывая тот факт что, у каждого сервера свой набор переменных. Вот что получается в результате ее применения на сайте webdesign.site3k.net:

REDIRECT_UNIQUE_ID=SThL5FlvvmYAABN0OuAAAAAA
REDIRECT_noframe=1
REDIRECT_STATUS=200
UNIQUE_ID=SThL5FlvvmYAABN0OuAAAAAA
HTTP_HOST=webdesign.site3k.net
HTTP_USER_AGENT=CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
HTTP_ACCEPT=Accept: application/xhtml+xml,text/html;q=0.9,text/plain;
HTTP_ACCEPT_LANGUAGE=en-us,en;q=0.5
HTTP_ACCEPT_ENCODING=gzip
HTTP_ACCEPT_CHARSET=ISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_CONNECTION=close
HTTP_CACHE_CONTROL=no-cache
HTTP_PRAGMA=no-cache
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
SERVER_SIGNATURE=
SERVER_SOFTWARE=Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.8b mod_bwlimited/1.4
SERVER_NAME=webdesign.site3k.net
SERVER_ADDR=89.111.190.102
SERVER_PORT=80
REMOTE_ADDR=38.103.63.57
DOCUMENT_ROOT=/home/site3k/public_html/webdesign
SERVER_ADMIN=webmaster@webdesign.site3k.net
SCRIPT_FILENAME=/home/site3k/public_html/webdesign/docs/ssi.html
REMOTE_PORT=56496
REDIRECT_URL=/noframe/docs/ssi.html
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
QUERY_STRING=
REQUEST_URI=/noframe/docs/ssi.html
SCRIPT_NAME=/docs/ssi.html
DATE_LOCAL=05.12.2008 г
DATE_GMT=04.12.2008 г
LAST_MODIFIED=04.07.2008 г
DOCUMENT_URI=/docs/ssi.html
USER_NAME=site3k
DOCUMENT_NAME=ssi.html
WORDS=
KEYW=
DESCRIP=
TITL=
HEAD=
ROB=index, follow
BROWSER=CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
DIR=noframe/
PER=NO

Однако, сами переменные, применяются часто. Например в SSI-директиве #echo var.

 

#echo var – Используется для вывода значения переменной указанной в качестве параметра.

Например:

Ваш IP – <!--#echo var="REMOTE_ADDR" -->
Ваш браузер – <!--#echo var="HTTP_USER_AGENT" -->
Мой сервер – <!--#echo var="SERVER_NAME" -->
Вы пришли со страницы – <!--#echo var="HTTP_REFERER" -->
Вы находитесь на странице – http://<!--#echo var="HTTP_HOST" --><!--#echo var="SCRIPT_NAME" -->

 

Выводит следующий текст:

Ваш IP – 38.103.63.57 
Ваш браузер – CCBot/1.0 (+http://www.commoncrawl.org/bot.html) 
Мой сервер – webdesign.site3k.net 
Вы пришли со страницы – (none) 
Вы находитесь на странице – http://webdesign.site3k.net/docs/ssi.html

 

#set var value – Устанавливает значение переменной, если переменной нет – создает. Формат команды set var="ИМЯ_ПЕРЕМЕННОЙ" value="ЕЕ_ЗНАЧЕНИЕ"

Например, такой код:

Значение переменной SERVER_NAME=«"<!--#echo var="SERVER_NAME" -->»
Сменим значение: <!--#set var="SERVER_NAME" value="discoverer.by.ru" -->
Теперь значение переменной SERVER_NAME=«<!--#echo var="SERVER_NAME" -->»

 

Выведет следующие строки:

Значение переменной SERVER_NAME=«webdesign.site3k.net»
Сменим значение: 
Теперь значение переменной SERVER_NAME=«discoverer.by.ru»

 

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

<!--#set var="MyText" value="Это самое наглядное пособие по <B>SSI</B>" -->

Чтобы в нужном месте страницы применить команду <!--#echo var="MyText" -->

Выглядит так: Это самое наглядное пособие по <B>SSI</B> (обратите внимание, специальные символы перекодированы так, чтобы отображаться на странице, а не работать, как ожидается.

Естественно, определить переменную, нужно до ее применения на странице.

Возможность работы с переменными является одной из важнейших особенностей SSI. Не будь ее, эта технология не имела бы такого широкого распространения.

Операции и операторы SSI.

SSI не поддерживает математических вычислений и строковых операций. Однако, SSI-технология поддерживает подстановки, которые можно расценивать как аналог конкатенации. Подстановка позволяет использовать переменные окружения в качестве параметров SSI-директив и комбинировать значения переменных и строк (производить конкатенацию). При подстановке переменные заключаются в фигурные скобки «{}», и предваряются знаком доллара «$» (иногда скобки можно опустить).

Например:

<!--#set var="NEW_VAR" value="http://${HTTP_HOST}${SCRIPT_NAME}" -->
<!--#echo var="NEW_VAR" -->

Поместит в переменную NEW_VAR полный путь и имя данной страницы и выведет его в текст:

http://webdesign.site3k.net/docs/ssi.html

При необходимости включения в подстановку знаков доллара, слеша, фигурных скобок и кавычек, их предваряют слешем:

\$ \/ \" \{ \}

#if, #elif, #else и #endif – Условные операторы. Позволяют выполнять код или выводить текст на страницу в зависимости от результата логического сравнения. Код, не соответствующий условию, никоим образом не появится даже при просмотре «исходного текста».

Формат оператора:

<!--#if expr="ПЕРВОЕ_УСЛОВИЕ" -->
HTML-код, который будет выводиться, если ПЕРВОЕ_УСЛОВИЕ истинно
<!--#elif expr="ВТОРОЕ_УСЛОВИЕ" -->
HTML-код, который будет выводиться, если ПЕРВОЕ_УСЛОВИЕ ложно, а ВТОРОЕ_УСЛОВИЕ истинно
<!--#else -->
HTML-код, который будет выводиться, если все условия ложны
<!--#endif -->

Условие - это либо строка, которая является истинной, если она непустая, или набор операторов сравнения строк. Операторами могут быть:

    Равенство =
    Неравенство !=
    Меньше <
    Меньше, либо равно <=
    Больше >
    Больше, либо равно >=
    Отрицание (не верно что) !

Если вторая строка заключена в слеши («/»), она является регулярным выражением. Например, условие истинно, если в первой строке встречается хоть одно вхождение второй строки.

Можно объединять несколько операторов сравнения с помощью операторов && («логическое И») и || («логическое ИЛИ»). Для группирования условий используются скобки. Для включение в условие переменных, их предваряют знаком доллара. Например:

Страница запрошена
<!--#if expr="$HTTP_USER_AGENT=/Opera/" -->
браузером Opera
<!--#elif expr="$HTTP_USER_AGENT=/MSIE/ || $HTTP_USER_AGENT=/Microsoft/" -->
браузером Microsoft Internet Explorer
<!--#elif expr="$HTTP_USER_AGENT=/Mozilla/" -->
браузером Netscape Navigator
<!--#else -->
поисковым роботом
<!--#endif -->

Результат:

Страница запрошена

поисковым роботом
 

Внимание: Любая SSI-директива должна начинаться с символов <!--# (комментарий и решетка), и завершаться символами --> (конец комментария). При этом, между концом SSI директивы и дефисами конца комментария должен быть, по крайней мере, один пробел – иначе сервер может не правильно распознать директиву, приняв дефисы и угловую скобку за конец команды.

Особенности SSI скриптов

  • SSI – Server Side Includes переводится как включение со стороны сервера. В самом названии отображаются главные особенности SSI:
  • SSI инструкции не работают на локальных компьютерах, они обрабатываются только ВЕБ-серверами и, то, как будет выглядеть страница в итоге, можно увидеть только поместив ее на сервер и загрузив от туда в браузере. Перед выдачей страницы, сервер считывает ее строку за строкой, и находя SSI-инструкции обрабатывает, вставляя вместо них, результат выполнения. Сами инструкции, в полученной поситителем странице не сохраняются.
  • SSI не может включать файлы с другого домена.
  • SSI поддерживается не всеми серверами и, о его поддержке владельцы серверов обязательно указывают в описании хоста.
  • SSI обрабатывается не во всех файлах. Во многих файлах содержимое просто не анализируется на содержание SSI-инструкций – это делается, чтобы не замедлять работу сервера лишней обработкой. Обрабатываемые типы файлов указываются в описании хоста. Так же, их можно посмотреть в httpd.conf или srm.conf (если у вас есть к ним доступ). На анализ SSI-инструкций указывают строки:
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    
    Обычно это HTM, HTML и SHTML файлы.
  • Иногда для обоаботки SSI-директив требуется размещение в корне сайта файла .htaccess (имя начинается с точки), с инструкциями типа
    AddHandler	server-parsed	.shtml
    AddHandler	server-parsed	.html
    
    Фактически, это единственный способ повлиять на работу сервера, если вы не являетесь его администратором.
    Больше информации о файле .htaccess можно посмотреть на  «Настройка файла .htaccess»
  • SSI обрабатывается не во всех каталогах. Для того чтобы в каталоге обрабатывались SSI-директивы, в файле access.conf этот каталог должен быть описан как Options Indexes Includes (или Options Includes), вложенные каталоги наследуют опцию и не требуют отдельной записи. Не у каждого есть доступ к этому файлу, однако, существует общее не писаное правило: на многих хостах содержимое делят на 2 корневые директории: cgi-bin и WWW. В файлах из директории cgi-bin никакие файлы (обычно) не проверяются на SSI-инструкции и никакие файлы (даже включенные по #include virtual) не отображаются в браузерах. Поэтому, файл, являющийся фрагментом страницы и включаемый в нее SSI-директивой НЕ доложен находиться в каталоге cgi-bin – в cgi-bin могут находиться только cgi-скрипты, так как они не включаются в страницу непосредственно (включается только результат их выполнения).
  • SSI-директивы обрабатываются не только в файлах, запрашиваемых посетителем, но и во включаемых в них фрагментах, если те имеют расширение, для которого разрешена проверка на наличие SSI-директив. Это может применяться различным образом, в частности, для обработки переменных, заданных на странице, включающей эти фрагменты.
  • Обычно, любые файлы в WWW-директории можно включить по SSI-директиве include, поэтому сами фрагменты, могут храниться в файлах с любым расширением. Тем не менее, следует учитывать что, HTM и HTML-файлы индексируются поисковыми системами, а значит, те могут послать посетителя на неполный фрагмент страницы (это, конечно, маловероятно, так как для этого на данный фрагмент должна быть проиндексированная ссылка), что, в свою очередь, может разочаровать его и оттолкнуть от сайта. Избежать такого, досадного, курьеза можно несколькими способами:
    1. Не помещая включаемые фрагменты в HTM и HTML файлы.
    2. Ввести в файл robots.txt (см.  «Спецификация файла robots.txt») директиву disallow: /НЕКИЙ_СИМВОЛ и имена всех включаемых файлов начинать с этого символа.
    3. Включить код проверки имени файла во все включаемые фрагменты, с тем, чтобы при совпадении имени с именем фрагмента, осуществлять переброску посетителя на другую страницу. Например:
      <!--#if expr="$DOCUMENT_NAME=_head.shtml" -->
      <meta http-equiv='refresh' content='0; URL=index.html'>
      <!--#endif -->
      
      Такой код не только даст возможность посетителю попасть на нормальную страницу, но и приведет к тому, что поисковики вскоре перестанут присылать людей на этот фрагмент.
      Вместо мета-тега можно использовать другие средства, но это может вызвать подозрение в клоакинге (подробности в  Клоакинг – технология «Входных дверей (Doorways)»).

Область применения SSI.

Обычно SSI применяется там же, где  Frame, Object, Script src=… и т. д., например, для включения в WEB-страницу повторяющихся фрагментов (меню, баннерные коды, заголовки). Однако, механизм включения совершенно иной. Если в Frame, Object, Script src=… и т. д. включаемый файл просто выдается сервером и уже на месте вставляется агентом пользователя (браузером), то в случае с SSI браузер получает страницу в уже готовом виде. Включение происходит прямо на сервере, а это порождает следующие отличия:

  • При включении типа Frame, Object, Script src=… и т. д. посетитель может узнать исходный код страницы, а при SSI-включении – нет. Сокрытие исходного кода может быть полезным автору.
  • При включении типа Frame, Object, Script src=… и т. д. требуется логическая завершенность включаемых объектов, а при SSI-внедрении – нет. Это так же, может оказаться удобным, так как позволяет дробить страницу на произвольные фрагменты и выделять в отдельные файлы большее количество общих мест.
  • При включении типа Frame, Object и т. д. к объекту, находящемуся во включенном фрагменте можно обратиться как ИМЯ_ФРАГМЕНТА.ИМЯ_ОБЪЕКТА, а к объекту, внедренному SSI-инструкцией, как к обычному элементу страницы – так проще.
  • При включении типа Frame, Object и т. д. можно разрешить пользователю менять содержимое объектов, а при SSI-внедрении – нет. Это заметно сужает область применения SSI.
  • При включении типа Frame, Object, Script src=… и т. д. обработка условий и прочих директив происходит на компьютере посетителя, а при SSI – на сервере. Тем самым SSI-технология замедляет загрузку: выигрыш достигается, только если большие фрагменты либо включаются, либо не включаются, в зависимости от конкретных условий (тогда, хотя и возрастает нагрузка серверного процессора, уменьшается нагрузка на линию связи).
  • Поскольку SSI выполняется сервером, истинный вид страницы, можно увидеть только там, что не удобно. Программы, позволяющие получить SSI на локальном компьютере, дают не совсем тот же вариант, хотя бы за счет различия в переменных типа DOCUMENT_URI. А с учетом непосредственных настроек каждого конкретного сервера, разница может иметь принципиальное значение.
  • При включении типа Frame, Object, Script src=… и т. д. включаемый объект загружается только однажды и, при последующем включении, берется из кэша. При SSI-внедрении, фрагмент загружается с каждой новой страницей, ЗНАЧИТЕЛЬНО замедляя загрузку: Это уже совсем плохо.
  • При включении типа Frame, Object, Script src=… и т. д. меню находится в одном файле, а при SSI, внедряется в каждую страницу, тем самым, рассредоточивая внутреннюю ссылочную значимость, и портя все дело, когда требуется сосредоточить весь ссылочный вес на главной странице.

Что применять: Frame, Object, Script src=… или SSI – личное дело каждого.

Пример из жизни.

Хороший и простой пример вы можете глянуть и на странице Способы хранения веб-страниц: документы FrontPage или базы данных

 

Пример фреймовой организации вы видите здесь. Другим примером может послужить сайт http://praktika.h14.ru, основанный на SSI.

Вариант с применением SSI-внедрения:

Исходный код главной страницы – index.html, в общих чертах:

Открыть в отдельном окне

Включаемый файл _head.shtml, имеет код:

Открыть в отдельном окне

Включаемый файл _logo.shtml:

Открыть в отдельном окне

Включаемый файл _menu.shtml:

Открыть в отдельном окне

Включаемый файл _center1.shtml:

Открыть в отдельном окне

Включаемый файл _ban.shtml:

Открыть в отдельном окне

Включаемый файл _ban2.shtml:

Открыть в отдельном окне

Включаемый файл _foot.shtml:

Открыть в отдельном окне

Этот же сайт во фреймовом варианте состоял бы из таких страниц (один из многих возможных вариантов):

index.html

Открыть в отдельном окне

Включаемый файл lefttop.htm:

Открыть в отдельном окне

Включаемый файл righttop.htm:

Открыть в отдельном окне

Включаемый файл menu.htm:

Открыть в отдельном окне

Включаемый файл foot.htm:

Открыть в отдельном окне

Практическое отличие одной и той же страницы, построенной с применением различных технологий лишь в том, что каждая страница объектов технологии IFRAME выглядит полнее и является вполне самостоятельной. Это несколько увеличивает время загрузки первой страницы, но зато, за счет кэширования, повторяющиеся фрагменты не приходится загружать со следующей страницей и дальнейшая загрузка значительно ускоряется (подробней о преимуществах Frame смотрите в  «Если вам не нравятся фреймы, значит вы не умеете их готовить»). Сочетание двух технологий включения дает наиболее качественный результат. Оно применяется на всех профессиональных сайтах и, если Frame и Object могут где-то не встретиться, то, по крайней мере, Script src=… и <link rel="stylesheet" href="…" type="text/css"> (то же включение кода, содержащегося в отдельном файле и загружающегося только однажды), используется повсеместно.

Применение IFRAME не может полностью заменить SSI, так как SSI позволяет не только загрузить фрагменты по условию (что можно решить и скриптом), но и, как показано в примере, через переменные передать им любые параметры. Без SSI это можно сделать только методом POST или через HTTP_REFERER (продолжение имени файла, после вопросительного знака), для дальнейшей обработки каким-либо скриптом. Но возможности такой передачи не идут ни в какое сравнение с возможностями передачи значений SSI переменных. Поэтому, применение SSI может потребоваться даже на страницах, основанных на фреймах – чем больше инструментов нам доступно, тем лучше и быстрее получается результат.

 

Комментарии к странице (всего 9)

 

 

 

 


На главную страницу сайта