‹
|
Последняя модификация: 10.08.2014 г Страница загружена с адреса: http://webdesign.site3k.ru/docs/ssi_.html SSI - Server Side Includes. УчебникДирективы 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.ru) то есть, не может указывать на файл другого сайта (для экспорта файлов другого сайта применяется В директиве допускаются пути типа: example/_ssi.html указывает на файл _ssi.html, находящийся в подкаталоге example текущего каталога. ../_ssi.html указывает на файл _ssi.html, находящийся в каталоге, в котором вложен текущий (родительском). /_ssi.html указывает на файл _ssi.html, находящийся в корневом каталоге сайта (для http://webdesign.site3k.ru/ это файл http://webdesign.site3k.ru/_ssi.html). Например: <!--#include virtual="_ssi.html" --> #fsize file Вставляет размер указанного файла. Файл, размер которого определяется, должен находиться на том же сайте, что и файл, содержащий данную инструкцию. Более того, он должен находится либо в том же каталоге, либо во вложеном каталоге. Например: <!--#fsize file="ssi.html" --> Выведет размер данного файла: 37K. Формат размера определяется по SSI-инструкции #config sizefmt.
#fsize virtual Вставляет размер указанного файла. В отличие от #fsize file может содержать относительный или абсолютный путь без названия протокола (HTTP://) и доменного имени и, таким образом, указывать на файл в другом каталоге того же сайта. Например: <!--#fsize virtual="/docs/ssi.html" --> Выведет размер данного файла: 37K. Формат размера определяется по SSI-инструкции #config sizefmt. #flastmod file Вставляет дату последней модификации указанного файла. Файл, дата модификации которого определяется, должен находиться на том же сайте, что и файл, содержащий инструкцию. Так же, он должен находится либо в том же каталоге, либо во вложеном каталоге. Например: <!--#flastmod file="ssi.html" --> Выведет дату последней модификации данного файла: 10.08.2014 г. Формат даты определяется по SSI-инструкции #config timefmt.
#flastmod virtual Вставляет дату последней модификации указанного файла. В отличие от #flastmod file может содержать относительный или абсолютный путь без названия протокола (HTTP://) и доменного имени и, таким образом, указывать на файл в другом каталоге того же сайта. Например: <!--#flastmod virtual="/docs/ssi.html" --> Выведет дату последней модификации данного файла: 10.08.2014 г. Формат даты определяется по 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, используя следующие параметры:
В результате, не подготовленная команда <!--#flastmod file="ssi.html" --> дает следующий вывод: 10.08.2014 г И эта же команда, после SSI директивы <!--#config timefmt="%d.%m.%Y г" -->, выдаст: 10.08.2014 г
#config sizefmt определяет формат размера для команды #fsize file. <!--#config sizefmt="abbrev" --> настраивает на вывод размера файла в килобайтах ( 37K), а <!--#config sizefmt="bytes" --> в байтах (37,782)
#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.ru) REQUEST_URI вся строка запроса, без указания протокола и имени сайта (/docs/ssi_.html) QUERY_STRING все, что находилось в адресной строке после вопросительного знака (обычно это параметры форм) Попробуйте вызвать эту страницу с какими-то параметрами после вопросительного знака и вы увидете их здесь () SCRIPT_NAME полный путь к странице от корня сайта (/docs/ssi_.html). Сочетание http://, HTTP_HOST и SCRIPT_NAME даёт привычный адрес страницы http://webdesign.site3k.ru/docs/ssi_.html). DOCUMENT_NAME только название файла. (ssi_.html) HTTP_REFERER страница, с которой перешли на эту ((none)) SCRIPT_FILENAME полный путь к странице на сервере (/home/users/s/supervisork/domains/webdesign.site3k.ru/docs/ssi_.html) SERVER_SOFTWARE название сервера и установленных модулей. SERVER_ADMIN почтовый адрес владельца сервера, указанный при установке. DATE_LOCAL сегодняшнее время и дата в вашем часовом поясе. DATE_GMT то же, но по Гринвичу. LAST_MODIFIED дата и время последнего обновления страницы. Практическое применение команда <!--#printenv --> имеет только для отладки страницы, что очень важно, учитывая тот факт что, у каждого сервера свой набор переменных. Вот что получается в результате ее применения на сайте webdesign.site3k.ru: downgrade-1.0= suppress-error-charset= HTTP_HOST=webdesign.site3k.ru HTTP_X_PROTOCOL=HTTP/1.1 HTTP_X_SERVER_IP=195.161.62.167 HTTP_X_FORWARDED_FOR=18.97.14.91 HTTP_X_FORWARDED_PROTOCOL=http HTTP_X_FORWARDED_PROTO=http HTTP_CONNECTION=close HTTP_USER_AGENT=CCBot/2.0 (https://commoncrawl.org/faq/) HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.5 HTTP_IF_MODIFIED_SINCE=Sat, 03 Aug 2024 10:59:54 GMT HTTP_ACCEPT_ENCODING=br,gzip PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin SERVER_SIGNATURE= SERVER_SOFTWARE=Apache SERVER_NAME=webdesign.site3k.ru SERVER_ADDR=127.0.0.1 SERVER_PORT=80 REMOTE_ADDR=18.97.14.91 DOCUMENT_ROOT=/home/users/s/supervisork/domains/webdesign.site3k.ru REQUEST_SCHEME=http CONTEXT_PREFIX= CONTEXT_DOCUMENT_ROOT=/home/users/s/supervisork/domains/webdesign.site3k.ru SERVER_ADMIN=info@jino.ru SCRIPT_FILENAME=/home/users/s/supervisork/domains/webdesign.site3k.ru/docs/ssi_.html REMOTE_PORT=52044 GATEWAY_INTERFACE=CGI/1.1 SERVER_PROTOCOL=HTTP/1.1 REQUEST_METHOD=GET QUERY_STRING= REQUEST_URI=/docs/ssi_.html SCRIPT_NAME=/docs/ssi_.html DATE_LOCAL=17.02.2025 г DATE_GMT=17.02.2025 г LAST_MODIFIED=10.08.2014 г DOCUMENT_URI=/docs/ssi_.html DOCUMENT_ARGS= USER_NAME=supervisork DOCUMENT_NAME=ssi_.html DIR= WORDS=ssi интерфейс скрипты apache include включить описание учебник пример поддержка директивы KEYW=SSI Server Side Includes серверное включение скрипта WEB Веб-дизайн веб-страница Интернет скрипт script cgi frame object iframe internet сайт site файл htm html shtml документация справочник SSI руководство пользователя русский скачать учебник страницы создание www язык html сайты справочник help файлы книги примеры самоучитель документы вставить меню описание html DESCRIP=SSI - Server Side Includes технология серверного включения скрипта с наглядными примерами. WEB Веб-дизайн. ssi интерфейс скрипты ssi apache include включить ssi описание учебник ssi пример поддержка ssi директивы настройка ssi использование ssi html htaccess ssi exec книга ssi мануал настройка ssi apache протокол ssi меню документация apache2 shtml стандарт ssi справочник. TITL=SSI интерфейс скрипты apache SSI include включить описание учебник SSI пример поддержка SSI директивы HEAD=Справочник Веб-дизайнера: Директивы SSI ROB=index, follow BROWSER=YES Однако, сами переменные, применяются часто. Например в 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 18.97.14.91 Ваш браузер CCBot/2.0 (https://commoncrawl.org/faq/) Мой сервер webdesign.site3k.ru Вы пришли со страницы (none) Вы находитесь на странице http://webdesign.site3k.ru/docs/ssi_.html
entity — (по умолчанию) будет произведено преобразование специальных HTML-символов в сущности и русский текст в кодировке Windows-1252 превратится в кракозябры (назначение данного преобразования непонятно); url — будет произведено escape-преобразование, все символы все английского алфавита приобретут вид %nn, где nn - код символа в 16-ричной кодировке, что позволит их применять в строке URL; none — не будет производиться никаких преобразований (как и раньше, с той только разницей, что HTML-сущности, которые раньше кодировались, кодироваться не будут и в переменные SSI можно вставлять угловые скобки и амперсанды). Пример: <!--#echo encoding="none" var="MyText" -->
#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.ru» Сменим значение: Теперь значение переменной SERVER_NAME=«discoverer.by.ru»
Конечно, подменять стандартные переменные окружения может и вовсе не имеет смысла, но назначать свои переменные бывает удобно, например: <!--#set var="MyText" value="Это самое наглядное пособие по <B>SSI</B>" --> Чтобы в нужном месте страницы применить команду <!--#echo encoding="none" var="MyText" --> Выглядит так: Это самое наглядное пособие по SSI (обратите внимание, специальные символы в старой версии SSI будут перекодированы так, чтобы отображаться на странице, а не работать, как ожидается. Естественно, определить переменную, нужно до ее применения на странице. Возможность работы с переменными является одной из важнейших особенностей SSI. Не будь ее, эта технология не имела бы такого широкого распространения. Операции и операторы SSI.SSI не поддерживает математических вычислений и строковых операций. Однако, SSI-технология поддерживает подстановки, которые можно расценивать как аналог конкатенации. Подстановка позволяет использовать переменные окружения в качестве параметров SSI-директив и комбинировать значения переменных и строк (производить конкатенацию). При подстановке переменные заключаются в фигурные скобки «{}», и предваряются знаком доллара «$» (иногда скобки можно опустить). Например: <!--#set var="NEW_VAR" value="http://${HTTP_HOST}${SCRIPT_NAME}" --> <!--#echo var="NEW_VAR" --> Поместит в переменную NEW_VAR полный путь и имя данной страницы и выведет его в текст: http://webdesign.site3k.ru/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 применяется там же, где
Что применять: Frame, Object, Script src= или SSI личное дело каждого.
![]()
|