动态确定htpasswd文件

动态确定htpasswd文件

有没有办法动态确定在运行时使用哪个 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 文件”?

相关内容