Apache Версия 2.0 Сервера HTTP
Description: | позволяет урегулирование переменных окружающей среды, основанных на особенностях запроса |
---|---|
Status: | основа |
Module Identifier: | setenvif_module |
Source File: | mod_setenvif.c |
mod_setenvif
модуль позволяет Вам устанавливать переменные окружающей среды согласно тому, соответствуют ли различные аспекты запроса регулярным выражениям, которые Вы определяете. Эти переменные окружающей среды могут использоваться другими частями сервера, чтобы принять решения о действиях, которые будут взяты.
директивы рассматривают в заказе, они появляются в файлах конфигурации. Таким образом более сложные последовательности могут использоваться, типа этого примера, который устанавливает
netscape
если браузер - mozilla, но не MSIE.
BrowserMatch ^Mozilla netscape
BrowserMatch MSIE !netscape
Description: | переменные окружающей среды наборов, условные на Пользовательском агенте HTTP |
---|---|
Syntax: |
BrowserMatch
regex [!]env-variable
[=
value
] [[!]
env-variable
[=
value
]] ...
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_setenvif |
BrowserMatch
является специальными случаями
SetEnvIf
директива, что переменные окружающей среды наборов, условные на
User-Agent
HTTP просят удар головой. Следующие две линии имеют тот же самый эффект:
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
некоторые дополнительные примеры:
BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript
Description: | переменные окружающей среды наборов, условные на Пользовательском агенте без уважения к случаю |
---|---|
Syntax: |
BrowserMatchNoCase
regex [!]env-variable
[=
value
] [[!]
env-variable
[=
value
]] ...
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_setenvif |
Compatibility: | Apache 1.2 и выше (в Apacheских 1.2 этих директивах был найден в теперь-устаревшем mod_browser модуле), |
BrowserMatchNoCase
директива семантически идентична
BrowserMatch
директива. Однако, это предусматривает нечувствительное к случаю соответствие. Например:
BrowserMatchNoCase mac platform=macintosh
BrowserMatchNoCase win platform=windows
BrowserMatch
и
BrowserMatchNoCase
директивы - специальные случаи
SetEnvIf
и
SetEnvIfNoCase
директивы. Следующие две линии имеют тот же самый эффект:
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
Description: | переменные окружающей среды наборов, основанные на признаках запроса |
---|---|
Syntax: |
SetEnvIf
attribute regex [!]env-variable
[=
value
] [[!]
env-variable
[=
value
]] ...
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_setenvif |
SetEnvIf
директива определяет переменные окружающей среды, основанные на признаках запроса.
признак
определен в первом аргументе может быть одной из трех вещей:
Host
,
User-Agent
,
Referer
, и
Accept-Language
. регулярное выражение может использоваться, чтобы определить ряд ударов головой запроса.
Remote_Host
- hostname (если доступный) клиента, делающего запрос
Remote_Addr
- IP адрес клиента, делающего запрос
Server_Addr
- IP адрес сервера, на котором запрос был получен (только с версиями позже чем 2.0.43)
Request_Method
- название используемого метода (
GET
,
POST
,
и так далее
)
Request_Protocol
- название и версия протокола, с которым был сделан запрос (
например.
, "HTTP/0.9", "HTTP/1.1",
и т.д.
)
Request_URI
- ресурс, который требуют на HTTP просят линию - вообще часть URL после схемы и части хозяина без вереницы вопроса
SetEnvIf
директивы, чтобы проверить против результата предшествующих спичек. Только те переменные окружающей среды, определенные ранее
SetEnvIf[NoCase]
директивы доступны для того, чтобы проверить в этой манере. 'Более ранний' означает, что они были определены в более широких возможностях (, типа всего сервера) или предварительно в возможностях текущей директивы. Переменные окружающей среды будут рассматривать, только если не было никакого состязания среди особенностей запроса, и регулярное выражение не использовалось для
признак
.
второй аргумент ( regex ) - a Perl compatible regular expression . это подобно регулярному выражению egrep-стиля POSIX.2. Если regex спички против признак , тогда остаток от аргументов оценен.
остальная часть аргументов дает названия переменных, чтобы установить, и произвольно оценивает, в который они должны быть установлены. Они принимают форму
varname
, или
!
varname
, или
varname
=
value
в первой форме, ценность будет собираться "1". Второе удалит данную переменную если уже определено, и третье установит переменную в буквальную ценность, данную
value
. так как Apache версии 2.0.51 признает возникновения
$1
..
$9
в пределах
ценность
и замените их по введенным подвыражениям
regex
.
SetEnvIf Request_URI "\.gif$" object_is_image=gif
SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
:
SetEnvIf Referer www\.mydomain\.com intra_site_referral
:
SetEnvIf object_is_image xbm XBIT_PROCESSING=1
:
SetEnvIf ^TS* ^[a-z].* HAVE_TS
первые три установят переменную окружающей среды
object_is_image
если запрос был для файла изображения, и четвертых наборов
intra_site_referral
если обратившаяся страница была где-нибудь на
www.mydomain.com
вебсайт.
последний пример установит переменную окружающей среды
HAVE_TS
если запрос содержит какие-нибудь удары головой, которые начинаются с "TS", ценности которого начинается с любого характера в наборе [a-z].
Description: | переменные окружающей среды наборов, основанные на признаках запроса без уважения к случаю |
---|---|
Syntax: |
SetEnvIfNoCase
attribute regex [!]env-variable
[=
value
] [[!]
env-variable
[=
value
]] ...
|
Context: | сервер config, действительный хозяин, справочник, .htaccess |
Override: | FileInfo |
Status: | основа |
Module: | mod_setenvif |
Compatibility: | Apache 1.3 и выше |
SetEnvIfNoCase
является семантически идентичным
SetEnvIf
директива, и отличается только по этому, регулярное выражение, соответствующее выполнено в нечувствительной к случаю манере. Например:
SetEnvIfNoCase Host Apache\.Org site=apache
это вызовет
site
переменная окружающей среды, чтобы собираться "
apache
"если HTTP просят область удара головой
Host:
был включен и содержался
Apache.Org
,
apache.org
, или любая другая комбинация.