apache setenvif не устанавливает переменную env, если проверено по заголовку HTTP - PullRequest
1 голос
/ 05 декабря 2011

из http://httpd.apache.org/docs/current/mod/mod_headers.html

"Условно отправьте MyHeader в ответе, если и только если в запросе присутствует заголовок MyRequestHeader. Это полезно для построения заголовков в ответ на некоторые клиентские стимулы. Обратите внимание, что этот пример требуетслужбы модуля mod_setenvif. "

 SetEnvIf MyRequestHeader myvalue ENV_SET
 Header set MyHeader "%D %t mytext" env=ENV_SET 

, но затем из Apache SetEnvIf проблема и из моего тестирования я пытался установить переменную окружения, проверяя заголовок Authorization ENV_SET не будет установлен вообще

SetEnvIf устанавливает только переменную env ENV_SET для следующих * Remote_Host * Remote_Addr * Server_Addr * Request_Method * Request_Protocol * Request_URI

Является ли документация неправильной или нетЧто-то не так?

Использование: Apache / 2.2.15 (Win32) mod_fastcgi / 2.4.6 mod_jk / 1.2.30

1 Ответ

2 голосов
/ 25 января 2012

Формат:

SetEnvIf <headername> <regex> <environment variable name and optionally a value>

Это сработало для меня:

SetEnvIf ACTUAL_CLIENT_IP "^172\.111\.0\.27" dontlog

, где ACTUAL_CLIENT_IP - это имя HTTP-заголовка, в котором хранится фактический IP-адрес клиента (в отличие отполе Remote_Addr, которое перезаписывается IP-адресом нашего прокси-сервера).

...