
¿Hay alguna forma de determinar dinámicamente qué archivo htpasswd usar en tiempo de ejecución? Por ejemplo, lo siguiente (que no funciona, solo un ejemplo) dentro de un contexto 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>
Sé que el ejemplo anterior no funciona, pero no estoy seguro de si hay una forma diferente de usar variables de entorno como esta... Si no, no sé si habría algún otro método para elegir el archivo htpasswd. dinámicamente en tiempo de ejecución. htpasswdfiles.map sería un mapa que contiene dominios a la izquierda y las rutas de archivo htpasswd apropiadas a la derecha.
Respuesta1
Solía configurar la autenticación básica dinámica mod_perl
sin ningún htpasswd
archivo, había un controlador declarado en las configuraciones de Apache y Perl se encargaba del resto. Pero probablemente esto no sea lo que desea ( mod_perl
no se usa comúnmente en estos días).
Respuesta2
Solución 1
Simplemente apunte su configuración de Apache a un archivo plano y haga que un script fuera de Apache controle el contenido.
Solución 2
Utilice LDAP para la autenticación en lugar de buscar entradas en un archivo plano.
Respuesta3
Dado que la reescritura y la autenticación no tienen absolutamente nada en común, esto no funciona.
¿POR QUÉ necesitas "elegir el archivo htpasswd dinámicamente"?