
有什麼方法可以動態決定執行時間使用哪個 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 檔案」?