
Есть ли способ динамически определить, какой файл htpasswd использовать во время выполнения? Например, следующее (не работает, просто пример) внутри контекста VirtualHost:
RewriteEngine on
RewriteMap htpasswdfiles txt:/srv/htpasswdfiles/htpasswdfiles.map
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule .* - [E=PASSWD_FILE:${htpasswdfiles:%1},L]
<Directory /some/path>
AuthType Basic
AuthName "Restricted Access"
AuthUserFile $PASSWD_FILE
Require valid-user
</Directory>
Я знаю, что приведенный выше пример не работает, но я не уверен, есть ли другой способ использовать переменные среды, подобные этому... Если нет, я не знаю, есть ли другой способ выбрать файл htpasswd динамически во время выполнения. htpasswdfiles.map будет картой, содержащей домены слева и соответствующие пути к файлам htpasswd справа.
решение1
Я использовал для настройки динамической базовой аутентификации mod_perl
без каких htpasswd
-либо файлов, был обработчик, объявленный в конфигах Apache, а Perl обрабатывал все остальное. Но это, вероятно, не то, что вам нужно ( mod_perl
в наши дни это обычно не используется).
решение2
Решение 1
Просто укажите в конфигурации Apache простой файл, а внешний скрипт Apache будет управлять его содержимым.
Решение 2
Используйте LDAP для аутентификации вместо поиска записей в плоском файле.
решение3
Поскольку перезапись и аутентификация не имеют абсолютно ничего общего, это не работает.
ПОЧЕМУ вам нужно «выбирать файл htpasswd динамически»?