我只是想知道是否可以根据基本身份验证用户设置环境变量。我尝试了以下版本,但都不起作用(显然都不起作用记录在案):
SetEnvIf HTTP_USER "marco" MYENV=foobar
SetEnvIf USER "marco" MYENV=foobar
SetEnvIf REMOTE_USER "marco" MYENV=foobar
干杯,马可
答案1
SetEnvIf 用于根据请求的属性或标头设置环境变量。但用户名不是要求;这是一个独立的环境变量,由 Apache 在处理完请求后设置。这就是它无法按您希望的方式工作的原因。
您可以通过获取 REMOTE_USER 环境变量并将其放在标题中来解决这个问题:
RequestHeader set X-Remote-User expr=%{REMOTE_USER}
SetEnvIf X-Remote-User "marco" MYENV=foobar