<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_setenvif

Description: позволяет урегулирование переменных окружающей среды, основанных на особенностях запроса
Status: основа
Module Identifier: setenvif_module
Source File: mod_setenvif.c

резюме

mod_setenvif модуль позволяет Вам устанавливать переменные окружающей среды согласно тому, соответствуют ли различные аспекты запроса регулярным выражениям, которые Вы определяете. Эти переменные окружающей среды могут использоваться другими частями сервера, чтобы принять решения о действиях, которые будут взяты.

директивы рассматривают в заказе, они появляются в файлах конфигурации. Таким образом более сложные последовательности могут использоваться, типа этого примера, который устанавливает netscape если браузер - mozilla, но не MSIE.

BrowserMatch ^Mozilla netscape
BrowserMatch MSIE !netscape

директивы

см. также

top

BrowserMatch Directive

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

top

BrowserMatchNoCase Directive

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

top

SetEnvIf Directive

Description: переменные окружающей среды наборов, основанные на признаках запроса
Syntax: SetEnvIf attribute regex [!]env-variable [= value ] [[!] env-variable [= value ]] ...
Context: сервер config, действительный хозяин, справочник, .htaccess
Override: FileInfo
Status: основа
Module: mod_setenvif

SetEnvIf директива определяет переменные окружающей среды, основанные на признаках запроса. признак определен в первом аргументе может быть одной из трех вещей:

  1. область удара головой запроса HTTP (см. RFC2616 за дополнительной информацией о них); например: Host , User-Agent , Referer , и Accept-Language . регулярное выражение может использоваться, чтобы определить ряд ударов головой запроса.
  2. один из следующих аспектов запроса:
    • 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 после схемы и части хозяина без вереницы вопроса
  3. название переменной окружающей среды в списке связанных с запросом. Это позволяет SetEnvIf директивы, чтобы проверить против результата предшествующих спичек. Только те переменные окружающей среды, определенные ранее SetEnvIf[NoCase] директивы доступны для того, чтобы проверить в этой манере. 'Более ранний' означает, что они были определены в более широких возможностях (, типа всего сервера) или предварительно в возможностях текущей директивы. Переменные окружающей среды будут рассматривать, только если не было никакого состязания среди особенностей запроса, и регулярное выражение не использовалось для признак .

второй аргумент ( regex ) - a Perl compatible regular expression . это подобно регулярному выражению egrep-стиля POSIX.2. Если regex спички против признак , тогда остаток от аргументов оценен.

остальная часть аргументов дает названия переменных, чтобы установить, и произвольно оценивает, в который они должны быть установлены. Они принимают форму

  1. varname , или
  2. ! varname , или
  3. varname = value

в первой форме, ценность будет собираться "1". Второе удалит данную переменную если уже определено, и третье установит переменную в буквальную ценность, данную value . так как Apache версии 2.0.51 признает возникновения $1 .. $9 в пределах ценность и замените их по введенным подвыражениям regex .

Example:

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].

см. также

top

SetEnvIfNoCase Directive

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 , или любая другая комбинация.