IHO.RU - ваш хостинг При заказе хостинга
на год – домен в подарок
Cлужба поддержки:
support@iho.ru

+7 (911) 947−89−09
Хостинг   |   Тарифы   |   Домены   |   Как заказать   |   Оплата   |   Партнерам   |   Справка   |   Контакты Регистрация   |   Управление
справка >> руководства >> SSI >> подробно

Руководство по SSI - Server-Side Includes

Введение

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

Базовые директивы

Директивы SSI включаются в HTML документ в виде комментариев (это не мешает вам использовать обычные комментарии). Синтакс команд имеет следующий вид:

<!--#element attribute=value attribute=value ... -->

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

Рассмотрим определенные в Apache элементы SSI:

config
контролирует различные аспекты сканирования. Его атрибутами могут быть:
errmsg - устанавливает сообщение, выводящееся при возникновении ошибки; в большинстве случаев целесообразно установить в пустую строку;
sizefmt - устанавливает формат, в котором будет выводиться размер файла. Формат соответствует передаваемому библиотечной функции strftime;
timefmt - устанавливает формат, в котором будет выводиться дата.
echo
выводит значение установленной переменной SSI. Допустимым атрибутом является var.
fsize
выводит размер файла в определенном с помощью sizefmt формате. Допустимые атрибуты:
file - определяет путь к файлу, относительно сканируемого документа;
virtual - определяет стандартный кодированный URL, относительно сканируемого документа, или, при наличии в начале слеша (/) - относительно корня документов узла.
flastmod
выводит дату последней модификации файла в определенном с помощью timefmt формате. Атрибуты аналогичны атрибутам fsize.
include
включает текст другого документа или файла в сканируемый файл. К включаемому файлу применяются все установленные правила ограничения доступа. Если для каталога, из которого включается файл, установлена опция IncludesNOEXEC, и включение данного документа привело бы к запуску программы, то документ не включается, и выводится сообщение об ошибке. CGI сценарии вызываются, как обычно с помощью URL, который может содержать кодированную строку запроса (query string). Положение файла указывается с помощью атрибутов:
file - указывает путь, относительно сканируемого документа; путь не может содержать ../ и не может быть абсолютным путем; всегда предпочтительнее использовать атрибут virtual;
virtual - содержит кодированный URL, относительный или абсолютный; URL не может содержать имя протокола или имя хоста, и может содержать строку запроса.
printenv
выводит содержимое переменных окружения. Вызывается без параметров.
set
устанавливает значение переменной. Ее атрибутами являются var, определяющий имя переменной, и value, определяющий ее значение.

Переменные включения

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

DATE_GMT
текущее время по Гринвичу;
DATE_LOCAL
текущее локальное (для сервера) время;
DOCUMENT_NAME
имя файла (без каталогов) документа, запрошенного пользователем;
DOCUMENT_URI
декодированный URL запрошенного пользователем документа;
LAST_MODIFIED
дата последней модификации документа, запрошенного пользователем. То есть во вложенном SSI эта переменная будет содержать имя "главного" документа, а не вложенного.

Подстановка переменных

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

<!--#if expr="$a = /$test" -->

Для предотвращения двусмысленности можно заключать имя переменной в фигурные скобки:

<!--#set var="Zed" value="${a}bc_${abc}" -->

В результате такого присвоения переменная Zed будет иметь значение "Xbc_Y", если переменная a равна X, а переменная abc равна Y.

Условные операторы

Базовыми элементами контроля являются:

<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->

Элементы elif и else являются необязательными. Элемент endif заканчивает элемент if и является обязательным. test_condition может быть одним из следующих:

string истинно, если string не пуста
string1 = string2 истинно, если выполняется условие сравнения. Если string2 имеет форму /string/, то тогда она интерпретируется, как регулятное выражение. Их синтаксис аналогичен синтаксису регулярных выражений в Unix команде egrep
string1 != string2
string1 < string2
string1 <= string2
string1 > string2
string1 >= string2
(test_condition) истинно, если test_condition истинно
!test_condition истинно, если test_condition ложно;
test_condition1 && test_condition2 истинно, если как test_condition1, так и test_condition2 истинны;
test_condition1 || test_condition2 истинно, если хотя бы test_condition1 или test_condition2 истинно.

"=" и "!=" имеют больший приоритет, чем "&&" и "||", а "!" имеет наивысший приоритет.

Все, что не распознается, как переменная, считается строкой. Если строка имеет пробелы или символы табуляции, то ее надо заключать в кавычки.

проверить почту:

ящик:

пароль:

панель управления:

логин:

пароль:

подобрать домен:

Имя домена:

(имя домена указывается без www)










Реклама:


        © 2002-2011 ООО "АЙХО Нетворкс"     |     Хостинг IHO.RU     |     Санкт-Петербург     |     лицензия на телемат. уcлуги N 88632     |     карта сайта     |     обратная связь