Apache 中除列出的用户代理外的所有用户代理的基本身份验证

Apache 中除列出的用户代理外的所有用户代理的基本身份验证

是否可以要求 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_rewritemod_authn_filemod_setenvif已启用,httpd.conf并且在那里设置了此指令:

AllowOverride All

此配置允许以“VipAgent1”和“VipAgent2”开头的用户代理请求访问,但要求所有其他访问者提供身份验证凭据。

相关内容