是否可以要求 Apache 配置中除指定用户代理之外的所有用户进行基本身份验证?
PS,我知道用户代理很容易被伪造,但就我的用例而言,这种条件身份验证就足够了。
答案1
经过一番搜索和实验后,我找到了答案。 需要在文件中添加以下几行.htaccess
:
SetEnvIf User-Agent ^VipAgent1 vip_agent
SetEnvIf User-Agent ^VipAgent2 vip_agent
Order Allow,Deny
Allow from env=vip_agent
AuthType Basic
AuthName "Protected Login"
AuthUserFile /path/to/htpasswd
Require valid-user
Satisfy any
此外,为了使其正常工作,需要确保mod_rewrite
、mod_authn_file
和mod_setenvif
已启用,httpd.conf
并且在那里设置了此指令:
AllowOverride All
此配置允许以“VipAgent1”和“VipAgent2”开头的用户代理请求访问,但要求所有其他访问者提供身份验证凭据。