.,
SSI расшифровывается как Server Side Include. SSI - это набор команд, позволяющий включить в страницу информацию, недоступную средствами HTML, такую как вывод программ, значения переменных окружения и статистику по файлам (размер, дата создания и др.). Все это и более позволяют делать CGI-скрипты, но зачем писать целый скрипт для получения размера файла, если можно воспользоваться SSI?:)
SSI работает очень просто: при получении запроса на документ, содержащий SSI-директивы, http-сервер обрабатывает документ, выполняет все SSI-директивы, а получившийся в результате документ возвращает клиенту. Http-сервер не проверяет автоматически все документы на наличие SSI-директив, а только те, которые относятся к типу, указанному в настройках сервера.
Для указания http-серверу, какие документы считать содержащими SSI-директивы, в srm.conf, находящемся в /etc/httpd/conf надо раскомментировать следующие строки:
AddType text/html .shtml
AddHandler server-parsed .shtml
После этого все документы с расширением .shtml будут проверяться на SSI-директивы. Но удобнее будет определить чтобы все .html-файлы могли содержать SSI. Это делается добавление в srm.conf
следующих строчек:
AddType text/html .html # не обязательно, т.к. он и так описан.
AddHandler server-parsed .html
Теперь надо разрешить выполнение SSI в каталоге, в котором лежат твои файла. Найди в access.conf
описание каталога, в котором лежат твои html'ы и добавь в его Options директиву Includes:
#было так
Options Indexes
#стало так
Options Indexes Includes
Если твой каталог не прописан, его надо прописать. Почитай доку по , чтоб узнать как это делается.:) А если у тебя нет возможности изменять srm.conf или access.conf, т.е. ты не root, тогда за пивом, а потом к админу.:)
SSI-директивы включаются в html-код в виде коментариев, но определенного формата:
<!--#SSI_директива="параметры" -->
Использовать можно следующие SSI-директивы:
echo var
Используется для вывода значения переменной окружения.
| Формат | Описание | Пример |
| %a | Аббревиатура названия дня недели | Sun |
| %A | Полное название дня недели | Sunday |
| %b | Аббревиатура названия месяца | Jan |
| %B | Полное название месяца | January |
| %d | День месяца | 01 (не 1) |
| %D | Дата в формате "%m/%d/%y" | 01/31/90 |
| %e | День месяца | 1 |
| %H | Часы в 24-часовом формате | 13 |
| %I | Часы в 12-часовом формате | 01 |
| %j | День года | 235 |
| %m | Номер месяца | 01 |
| %M | Минуты | 03 |
| %p | AM|PM | AM |
| %r | Время в формате "%I:%M:%S %p"
Выводит все переменные окружения. Параметров не имеет. Список переменных окружения:<BR> <!--#printenv --> Вывод: Список переменных окружения: SCRIPT_URL=/internet/html/ssi.shtml SCRIPT_URI=http://citforum.ru/internet/html/ssi.shtml CITFORUM=1 HTTP_X_FORWARDED_FOR=94.181.139.204 HTTP_HOST=citforum.ru HTTP_CONNECTION=close HTTP_REFERER=http://citforum.ru/internet/html/ HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 7.0; Win32) HTTP_CACHE_CONTROL=no-cache PATH=/usr/local/bin:/usr/bin:/bin SERVER_SIGNATURE=<address>Apache/2.2.16 (Debian) Server at citforum.ru Port 80</address> SERVER_SOFTWARE=Apache/2.2.16 (Debian) SERVER_NAME=citforum.ru SERVER_ADDR=10.53.2.112 SERVER_PORT=80 REMOTE_ADDR=10.53.2.103 DOCUMENT_ROOT=/www/citforum/ SERVER_ADMIN=webmaster@localhost SCRIPT_FILENAME=/www/citforum/internet/html/ssi.shtml REMOTE_PORT=38103 GATEWAY_INTERFACE=CGI/1.1 SERVER_PROTOCOL=HTTP/1.0 REQUEST_METHOD=GET QUERY_STRING= REQUEST_URI=/internet/html/ssi.shtml SCRIPT_NAME=/internet/html/ssi.shtml DATE_LOCAL=02.08.2012 19:44:51 DATE_GMT=02.08.2012 15:44:51 LAST_MODIFIED=28.12.2003 19:15:27 DOCUMENT_URI=/internet/html/ssi.shtml USER_NAME=<unknown> DOCUMENT_NAME=ssi.shtml set var Устанавливает значение переменной окружения. Формат такой set var="ИМЯ_ПЕРЕМЕННОЙ" value="ЗНАЧЕНИЕ". Значение переменной SERVER_NAME: <!--#echo var="SERVER_NAME" --><BR> Сменим значение: <!--#set var="SERVER_NAME" value="www.dhls.ru" --><BR> Значение переменной SERVER_NAME: <!--#echo var="SERVER_NAME" --><BR> Вывод: Значение переменной SERVER_NAME:citforum.ru Сменим значение: Значение переменной SERVER_NAME: www.dhls.ru if/else Наличие такой команды не может не радовать...:) Применяется для управления выводом страницы по условию. Синтаксис такой: <!--#if expr="УСЛОВИЕ1" --> HTML-код, который будет выводиться, если УСЛОВИЕ1 истинно <--#elif expr="УСЛОВИЕ2" --> HTML-код, который будет выводиться, если УСЛОВИЕ1 ложно, а УСЛОВИЕ2 истинно <--#else --> HTML-код, который будет выводиться, если все условия ложны <--#endif --> Условие - это либо строка, которая является истинной, если непустая, или набор операторов сравнения строк. Операторы могут быть =,!=,<,<=,> и >. Если вторая строка заключена в "/"(слэши), то условие истинно, если в первой строке встречается хоть одно вхождение второй строки. Можно объединять несколько операторов сравнения с помощью операторов &&(И) и (ИЛИ). Для группирования условий используются "()"(скобки). Броузер:<b> <!--#if expr="$HTTP_USER_AGENT=/Nav/ $HTTP_USER_AGENT=/Mozilla/" --> Netscape Navigator <!--#elif expr="$HTTP_USER_AGENT=/MSIE/" --> Internet Explorer <!--#else --> Неизвестный (<!--#echo var="HTTP_USER_AGENT" -->) <!--#endif --> </b> Вывод: Броузер: Netscape Navigator (c), 2000. Использование данного документа разрешено только с согласия автора и с указанием первоисточника: |