Назад | Перейти на главную страницу

Apache 2.4: установка переменной среды, зависящей от пользователя

Мне просто интересно, можно ли установить переменную среды в зависимости от пользователя базовой аутентификации. Я пробовал следующие версии, но ни одна из них не работает (очевидно, ни одна из них задокументировано либо):

SetEnvIf HTTP_USER   "marco" MYENV=foobar
SetEnvIf USER        "marco" MYENV=foobar
SetEnvIf REMOTE_USER "marco" MYENV=foobar

Привет, Марко

SetEnvIf используется для установки переменных среды на основе атрибутов или заголовка запроса. Но имя пользователя не является атрибутом запрос; это отдельная переменная среды, которая устанавливается Apache после того, как запрос уже обработан. Вот почему это не работает так, как вы хотите.

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

RequestHeader set X-Remote-User expr=%{REMOTE_USER}
SetEnvIf X-Remote-User "marco" MYENV=foobar