Ограничение SSI по расположению

Диапазон действия директивы может быть ограничен парой директив <Location>, или директив <Directory>, или размещением его в файле .htaccess, находящемся в этом каталоге.

<Location /ssidir> Options +Include

</Location>

 

Первый вариант ограничения режима SSI

по расширению файла: директива AddHandler

Еще одним способом ограничения количества файлов, просматриваемых сервером Apache до того, как они будут обслужены, является указание нового расширения фай лов, содержащих ключевые слова SSI. Например, чтобы ограничить SSI вывод в вашей системе только файлами с расширением .shtml, можно прибегнуть к помощи директивы AddHandier.

AddHandier server parsed .shtml

Эта директива сообщает серверу, что перед передачей страниц пользователям нужно просматривать файлы с расширением . shtml и делать соответствующие замены директив SSI. Конечно использовать именно расширение . shtml не обязательно, но такой метод является наиболее традиционным.

Уместно напомнить, что директиву AddHandier можно применять только к SSI файлам. Это общий метод подключения типов файлов к дескрипторам внутреннего содержимого на сервере Apache. Эта директива опять встретится нам при обсуждении CGI интерфейса.

Второй вариант ограничения режима SSI

по расширению файла: директива AddType

Связав расширение .shtml с соответствующим внутренним дескриптором, необходимо сообщить всем браузерам клиентов, что это было сделано. Браузеры ожидают информацию о типе получаемого содержимого. Директива AddType ассоциирует расширение файла с типом содержимого, переданного браузеру клиента. В следующем примере серверу дана команда сообщать всем клиентам, что файлы, имеющие расширение .shtml, содержат данные типа text/html.

AddType text/html .shtml

С другой стороны, директиву AddType можно использовать для полного обхода директивы AddHandier. Например:

AddType application/x server parsed .shtml

2.6. Определение элементарных SSI: директива XBitCrack

Единственной директивой модуля mod_include является директива XBitCrack. Если ее установить в on, это будет означать, что сервер рассматривает все документы, исполняемые в файловой системе и имеющие MIME тип text/html как SSI документы.

XBitCrack on

Помимо значений off и on, директива XBitCrack имеет опцию fall, задающую серверу режим вставки заголовка Last Modified при передаче файла. Это позволяет proxy—серверу производить кэширование.

Листинг вставок

В этом разделе перечислены SSI вставки и приведены примеры их использования.

3.1. Установка опций SSI: команда config

Команда config модифицирует формат вывода для других команд. Вставка команды config позволяет определить следующие три момента:

• errmsg является текстовым сообщением, передаваемым клиенту в случае возникновения ошибки в процессе синтаксического анализа SSI.

 

•sizefmt [bytes | abbrev] задает формат отображения размера.

•timefmt задает формат строки, используемый при отображении календарных

значений.

<! #config еrrmsg="Ошибка возникла во время разборки SSI" >

3.2. Отображение конфигурационных переменных: команда echo

Команда echo предназначена для отображения значения переменной окружения.

<! #echo var="$APACHEDIR" >

3.3. Запуск сценария: команда exec

Эта команда используется для запуска программы из страницы SSI. Такая программа может быть исполняемым кодом. В этом случае используется параметр cmd:

<! #ехес cmd="/bin/date" >

С другой стороны, это может быть сценарий CGI. В таком случае используется параметр cgi:

<! #ехес cgi ="/cgi bin/program.pl" >

Отметим, что разрешение запуска сценариев CGI несет в себе определенный риск для системы безопасности, и на это не стоит идти без крайней необходимости.

3.4. Отображение размера файла: команда fsize

Для отображения размера файла в соответствии с форматом, заданным командой config sizefmt, предназначена команда fsize.

<! #config sizefmt="bytes" > <! #fsize file="/bin/date" >

3.5.Отображение времени последней модификации файла: команда flastmod

Для отображения времени последней модификации файла в формате, заданного командой config timefmt, необходимо указать:

<! #config timefmt="%m %d %h:%m" > <! #flastmod file="/bin/whatever" >

3.6. Условное выполнение: команды if и elif

SSI код имеет простейшее (элементарное) управление выполнением. Для выполнения некоего оператора по определенному условию возьмите его в операторные скобки if. Возможно также выполнение оператора elif .

<! #if expr="$var1 = true" > V a r 1 is true

<!$$#elif expr="$var1 = false" $$> Var 1 is false

<!$$#endif" $$>

3.7. Отображение других файлов: команда include

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

 

<! #include file="/etc/motd" >

или задается имя узла:

<! #includevirtual="http://www.some.com" >

3.8.Отображениеспискавсехпеременныхокружения: команда printenv

Эта команда предназначена для отображения сразу всех переменных окружения (это очень удобно при отладке).

<! #printenv >

3.9. Изменение значения переменной: команда set

Команда set предназначена для создания переменных и присвоения им значений.

<!$$#set var="v1" value="the value" $$>

Интерфейс CGI

CGI является общим интерфейсом отображения результатов работы программ. Формат CGI не зависит от языка программирования. С этим интерфейсом может работать любая программа или сценарий из существующего на данный момент инструментария программирования, начиная с достаточно "древнего" языка программирования COBOL и до языка написания сценариев Perl, генерирующего код HTML. Одна ко на практике одни языки лучше подходят для генерирования CGI содержимого, чем другие. В частности, язык Perl более подходит для обработки текстовых строк, содержащих HTML код.








Дата добавления: 2017-06-02; просмотров: 543;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.