Apache Версия 2.0 Сервера HTTP
Description: | разобранные сервером документы html (Сторона Сервера Включает), |
---|---|
Status: | основа |
Module Identifier: | include_module |
Source File: | mod_include.c |
Compatibility: | осуществленный как фильтр продукции начиная с Apacheа 2.0 |
этот модуль обеспечивает фильтр, который обработает файлы прежде, чем их посылают клиенту. Обработкой управляют особенно форматированные комментарии SGML, называл элементы . эти элементы позволяют условный текст, включение других файлов или программ, так же как урегулирования и печати переменных окружающей среды.
Сторона Сервера Включает, осуществлены
INCLUDES
filter
. если документы, содержащие сторону сервера включают директивы, даются расширение .shtml, следующие директивы заставят Apacheа разобрать их и назначить получающийся документ тип пантомимы
text/html
:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
следующую директиву нужно дать для справочников, содержащих shtml файлы (типично в a
<Directory>
секция, но эта директива также действительно в
.htaccess
файлы, если
AllowOverride
Options
установлен):
Options +Includes
для назад совместимости,
server-parsed
handler
также активизирует, ВКЛЮЧАЕТ фильтр. Также, Apache активизирует, ВКЛЮЧАЕТ фильтр для любого документа с типом пантомимы
text/x-server-parsed-html
или
text/x-server-parsed-html3
(и получающаяся продукция будет иметь тип пантомимы
text/html
).
за дополнительной информацией, см. наш Tutorial on Server Side Includes .
файлы, обработанные для стороны сервера включают, больше не принимают запросы с
PATH_INFO
(перемещение информации имени пути) по умолчанию. Вы можете использовать
AcceptPathInfo
директива, чтобы формировать сервер, чтобы принять запросы с
PATH_INFO
.
документ разобран как документ HTML, со специальными командами, вложенными как комментарии SGML. Команда имеет синтаксис:
<!--#
element
attribute
=
value
attribute
=
value
... -->
ценность будет часто прилагаться в двойных кавычках, но единственных кавычках (
'
) и обратные галочки (
`
) также возможны. Много команд только позволяют единственной паре ценности признака. Отметьте что терминатор комментария (
-->
) нужно предшествовать whitespace, чтобы гарантировать, что это не считает частью символа ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ. Отметьте что продвижение
<!--#
один
символ и, возможно, не содержит никакого whitespaces.
позволенные элементы перечислены в следующем столе:
элемент | описание |
---|---|
config
|
формировать форматы продукции |
echo
|
переменные печати |
exec
|
выполнить внешние программы |
fsize
|
напечатать размер файла |
flastmod
|
напечатать в прошлый раз модификации файла |
include
|
включить файл |
printenv
|
напечатать все доступные переменные |
set
|
установить ценность переменной |
элементы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ могут быть определены модулями кроме
mod_include
. фактически,
exec
элементом обеспечивают
mod_cgi
, и только будет доступным, если этот модуль будет загружен.
эта команда управляет различными аспектами парсинга. Действительные признаки:
errmsg
SSIErrorMsg
директивы.
sizefmt
bytes
для счета в байтах, или
abbrev
для счета в КБ или МБ как соответствующий, например размер 1024 байтов будет напечатан как "1 КБ".
timefmt
strftime(3)
рутина библиотеки, печатая даты.
эта команда печатает один из
include variables
, определенный ниже. Если переменная сброшена, результат определен
SSIUndefinedEcho
директива. Любые напечатанные даты подчинены в настоящее время формируемый
timefmt
.
признаки:
var
encoding
определяет, как Apache должен закодировать специальные характеры, содержавшиеся в переменной прежде outputting их. Если установлено в
none
, никакое зашифровывание не будет сделано. Если установлено в
url
, тогда зашифровывание URL (также известный как % - зашифровывание; это является соответствующим для использования в пределах URL в связях, и т.д.) будет выполнен. В начале
echo
элемент, неплатеж собирается
entity
, приводя к зашифровыванию юридического лица (который является соответствующим в контексте элемента HTML брускового уровня,
например.
параграф текста). Это может быть изменено, добавляя
encoding
признак, который останется в силе до следующего
encoding
с признаком сталкиваются или концы элемента, какой бы ни прибывает сначала.
encoding
признак должен
предшествовать
передача
var
признак, чтобы быть эффективным, и только специальные характеры как определено в зашифровывании характера ISO-8859-1 будет закодирован. Этот процесс зашифровывания, возможно, не имеет желательного результата, если различное зашифровывание характера находится в использовании.
exec
команда выполняет данную команду снаряда или подлинник CGI. Это требует
mod_cgi
присутствовать в сервере. Если
Options
IncludesNOEXEC
установлен, эта команда полностью выведена из строя. Действительные признаки:
cgi
ценность определяет (% - закодированный) ДОРОЖКА URL к подлиннику CGI. Если дорожка не начинается с разреза (/), то это взято, чтобы быть относительно текущего документа. Документ, на который ссылается эта дорожка призван как подлинник CGI, даже если сервер обычно не признавал бы это также. Однако, справочник, содержащий подлинник нужно позволить для подлинников CGI (с
ScriptAlias
или
Options
ExecCGI
).
подлинник CGI дается
PATH_INFO
и вереница вопроса (
QUERY_STRING
) оригинального запроса от клиента; они
не может
быть определен в дорожке URL. Включающиеся переменные будут доступны для подлинника в дополнение к стандарту
CGI
окружающая среда.
<!--#exec cgi="/cgi-bin/example.cgi" -->
если подлинник возвращает a
Location:
удар головой вместо продукции, тогда это будет переведено на якорь HTML.
include virtual
элемент должен использоваться в предпочтении к
exec cgi
. в частности если Вы должны передать дополнительные аргументы программе CGI, используя вереницу вопроса, это не может быть сделано с
exec cgi
, но может быть сделан с
include virtual
, как показано здесь:
<!--#include virtual="/cgi-bin/example.cgi?argument=value" -->
cmd
сервер выполнит данное использование вереницы
/bin/sh
.
include variables
являются доступными для команды, в дополнение к обычному набору переменных CGI.
использование
#include virtual
почти всегда предпочитается использованию также
#exec cgi
или
#exec cmd
. прежний (
#include virtual
) использует стандартный Apache механизм подзапроса, чтобы включить файлы или подлинники. Это намного лучше проверено и поддержано.
кроме того, на некоторых платформах, как Win32, и на unix, используя
suexec
, Вы не можете передать аргументы команде в
exec
директива, или иначе включают места в команду. Таким образом, в то время как следующее будет работать под non-suexec конфигурацией на unix, это не будет производить желательный результат под Win32, или при управлении suexec:
<!--#exec cmd="perl /path/to/perlscript arg1 arg2" -->
эта команда печатает размер указанного файла, подчиненного
sizefmt
спецификация формата. Признаки:
file
virtual
эта команда печатает последнюю дату модификации указанного файла, подчиненного
timefmt
спецификация формата. Признаки - то же самое что касается
fsize
команда.
эта команда вставляет текст другого документа или файла в разобранный файл. Любой включенный файл подчинен обычному контролю доступа. Если справочник, содержащий разобранный файл имеет
Options
IncludesNOEXEC
набор, тогда только документы с типом MIME текста (
text/plain
,
text/html
и т.д.), будет включен. Иначе подлинники CGI призваны как нормальное использование полного URL, данного в команде, включая любую вереницу вопроса.
признак определяет местоположение документа; включение сделано для каждого признака, данного включающейся команде. Действительные признаки:
file
../
, и при этом это не может быть абсолютная дорожка. Поэтому, Вы не можете включить файлы, которые являются вне корня документа, или выше текущего документа в директивной структуре.
virtual
признак должен всегда использоваться в предпочтении к этому.
virtual
ценность (% - закодирована) ДОРОЖКА URL. URL не может содержать схему или hostname, только дорожка и дополнительная вереница вопроса. Если это не начинается с разреза (/) тогда, это взято, чтобы быть относительно текущего документа.
URL построен из признака, и продукция, которую сервер возвратил бы, если бы к URL получал доступ клиент, включена в разобранную продукцию. Таким образом включенные файлы могут быть вложены.
если указанный URL будет программой CGI, то программа будет выполнена, и ее продукция вставлена вместо директивы в разобранном файле. Вы можете включить вереницу вопроса в url CGI:
<!--#include virtual="/cgi-bin/example.cgi?argument=value" -->
include virtual
должен использоваться в предпочтении к
exec cgi
включать продукцию программ CGI в документ HTML.
это печатает внесение в список всех существующих переменных и их ценностей. Специальные характеры - закодированное юридическое лицо (см.
echo
элемент для деталей) перед быть продукцией. Нет никаких признаков.
<!--#printenv -->
это устанавливает ценность переменной. Признаки:
var
value
<!--#set var="category" value="help" -->
в дополнение к переменным в стандартной окружающей среде CGI, они доступны для
echo
команда, для
if
и
elif
, и к любой программе, призванной в соответствии с документом.
DATE_GMT
DATE_LOCAL
DOCUMENT_NAME
DOCUMENT_URI
LAST_MODIFIED
QUERY_STRING_UNESCAPED
&
и т.д. предшествуются наклонными чертами влево).
переменная замена сделана в пределах указанных верениц в большинстве случаев, где они могут разумно произойти как аргумент директиве ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ. Это включает
config
,
exec
,
flastmod
,
fsize
,
include
,
echo
, и
set
директивы, так же как аргументы условным операторам. Вы можете вставить буквальный долларовый признак в вереницу, используя цитирование наклонной черты влево:
<!--#if expr="$a = \$test" -->
если переменной ссылкой нужно заменить в середине последовательности характера, которую можно было бы иначе счесть действительным идентификатором в его собственном праве, это может быть снято неоднозначность, прилагая ссылку в фигурных скобках, la замена снаряда:
<!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" -->
это приведет
Zed
переменная, собирающаяся "
X_Y
"если
REMOTE_HOST
является "
X
"и
REQUEST_METHOD
является "
Y
".
ниже примера напечатает "в foo" если
DOCUMENT_URI
/foo/file.html
, "в бруске", если это
/bar/file.html
и "ни в одном" иначе:
<!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
in foo
<!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' -->
in bar
<!--#else -->
in neither
<!--#endif -->
основные элементы контроля потока:
<!--#if expr="
test_condition
" -->
<!--#elif expr="
test_condition
" -->
<!--#else -->
<!--#endif -->
if
элемент работает как если утверждение в языке программирования. Испытательное условие оценено и если результат верен, то текст до следующего
elif
,
else
или
endif
элемент включен в поток продукции.
elif
или
else
утверждения - использоваться, чтобы поместить текст в поток продукции если оригинал
test_condition
был ложным. Эти элементы являются дополнительными.
endif
элемент заканчивается
if
элемент и требуется.
test_condition является одним из следующего:
string
string1
=
string2
string1
!=
string2
сравнитесь
string1
с
string2
. если
string2
имеет форму
/
string2
/
тогда это рассматривают как регулярное выражение. Регулярные выражения осуществлены
PCRE
двигатель и имеет тот же самый синтаксис как те в
perl 5
.
если Вы соответствуете положительный (
=
), Вы можете захватить сгруппированные части регулярного выражения. Захваченные части сохранены в специальных переменных
$1
..
$9
.
<!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" -->
<!--#set var="session" value="$1" -->
<!--#endif -->
string1
<
string2
string1
<=
string2
string1
>
string2
string1
>=
string2
strcmp(3)
). Поэтому вереница "100" - "меньше чем 20".
(
test_condition
)
!
test_condition
test_condition1
&&
test_condition2
test_condition1
||
test_condition2
"
=
"и"
!=
"свяжите более сильно чем"
&&
"и"
||
"."
!
"связывает наиболее сильно. Таким образом, следующее эквивалентны:
<!--#if expr="$a = test1 && $b = test2" -->
<!--#if expr="($a = test1) && ($b = test2)" -->
булевы операторы
&&
и
||
разделить тот же самый приоритет. Так, если Вы хотите связать такой оператор более сильно, Вы должны использовать круглые скобки.
что - нибудь это не признано как переменная или оператор, рассматривают как вереница. Вереницы могут также быть указаны:
'string'
. неупомянутые вереницы не могут содержать whitespace (бланки и счета), потому что это используется, чтобы отделить символы, типа переменных. Если многократные вереницы найдены в ряд, они связаны, используя бланки. Так,
string1
string2
results in
string1
string2
and
'
string1
string2
'
results in
string1
string2
.
Description: | вереница, которая заканчивает включающийся элемент |
---|---|
Syntax: |
SSIEndTag
tag
|
Default: |
SSIEndTag "-->"
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_include |
Compatibility: | доступный в версии 2.0.30 и позже. |
эта директива изменяет вереницу это
mod_include
ищет, чтобы отметить конец включающегося элемента.
SSIEndTag "%>"
Description: | ошибочное сообщение показало, когда есть ошибка ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ |
---|---|
Syntax: |
SSIErrorMsg
message
|
Default: |
SSIErrorMsg "[an error occurred while processing this directive]"
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | все |
Status: | основа |
Module: | mod_include |
Compatibility: | доступный в версии 2.0.30 и позже. |
SSIErrorMsg
директива изменяет ошибочное показанное сообщение когда
mod_include
сталкивается с ошибкой. Для серверов производства Вы можете рассмотреть изменение ошибочного сообщения по умолчанию к
"<!-- Error -->"
так, чтобы сообщение было не представлено пользователю.
эта директива имеет тот же самый эффект как
<!--#config errmsg=
message
-->
элемент.
SSIErrorMsg "<!-- Error -->"
Description: | вереница, которая начинает включающийся элемент |
---|---|
Syntax: |
SSIStartTag
tag
|
Default: |
SSIStartTag "<!--#"
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_include |
Compatibility: | доступный в версии 2.0.30 и позже. |
эта директива изменяет вереницу это
mod_include
ищет, чтобы отметить включающийся элемент, чтобы обработать.
Вы можете хотеть использовать этот выбор, если Вы имеете 2 сервера, разбирающие продукцию файла каждые обрабатывающие различные команды (возможно в разное время).
SSIStartTag "<%"
SSIEndTag "%>"
пример, данный выше, который также определяет соответствие
SSIEndTag
, позволите Вы использовать директивы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ как показано в примере ниже:
<%printenv %>
Description: | формирует формат, в котором показаны вереницы даты |
---|---|
Syntax: |
SSITimeFormat
formatstring
|
Default: |
SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | все |
Status: | основа |
Module: | mod_include |
Compatibility: | доступный в версии 2.0.30 и позже. |
эта директива изменяет формат, в котором вереницы даты показаны, отзываясь эхом
DATE
переменные окружающей среды.
formatstring
является как в
strftime(3)
от стандартной библиотеки C.
эта директива имеет тот же самый эффект как
<!--#config timefmt=
formatstring
-->
элемент.
SSITimeFormat "%R, %B %d, %Y"
вышеупомянутая директива заставила бы времена быть показанными в формате "22:26, 14 июня 2002".
Description: | вереница показала, когда переменная сброса отражена |
---|---|
Syntax: |
SSIUndefinedEcho
string
|
Default: |
SSIUndefinedEcho "(none)"
|
Context: | сервер config, действительный хозяин |
Status: | основа |
Module: | mod_include |
Compatibility: | доступный в версии 2.0.34 и позже. |
эта директива изменяет вереницу это
mod_include
показы, когда переменная не установлена и "отражена".
SSIUndefinedEcho "<!-- undef -->"
Description: | директивы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ разбора в файлах с выполняющимся набором бита |
---|---|
Syntax: |
XBitHack on|off|full
|
Default: |
XBitHack off
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | варианты |
Status: | основа |
Module: | mod_include |
XBitHack
директива управляет парсингом обычных документов html. Эта директива только затрагивает файлы, связанные с типом MIME
text/html
.
XBitHack
может взять следующие ценности:
off
on
text/html
файл, который имеет выполняющийся пользователем набор бита, будут рассматривать как разобранный сервером документ html.
full
on
но также и тест выполняющийся группой бит. Если это установлено, то устанавливают
Last-modified
дата возвращенного файла, чтобы быть в прошлый измененный раз файла. Если это не установлено, то никакую последнее-измененную дату не посылают. Урегулирование этого бита позволяет клиентам и полномочиям прятать результат про запас запроса.
Вы не хотели бы использовать полный выбор, если Вы не уверяете, что выполняющийся группой бит сброшен для каждого подлинника ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ, который мог бы
#include
CGI или иначе производит различную продукцию на каждом хите (или мог потенциально измениться на последующих запросах).