apache将REMOTE_USER转发给X-Forwarded-User

当HTTP基本authentication正确到后端时,我想传递由apache设置的环境variablesREMOTE_USER。 这也将提供身份validation到后端服务器。

这是我的apache2configuration文件:

<Directory /> AuthType basic AuthUserFile $my_file require valid-user RewriteEngine on RewriteCond %{REMOTE_USER} (.+) RequestHeader set X-Forwarded-User %{REMOTE_USER}e </Directory> 

通过apache2进行身份validation进展良好,因为我已正确redirect到后端服务器,但后来服务器没有收到REMOTE_USER,因为X-Forwarded-Uservariables未出现在tcpdump跟踪中。

我可能忘记/错误configuration了哪些不会将此REMOTE_USERvariables作为X-Forwarded-User转发到后端?

REMOTE_USER实际上并不是Apache内部的一个环境variables,而是由Apache在运行诸如CGI或PHP处理程序之类的东西时设置的。

实际值embedded在Apache中的结构中。 请参阅有关环境variables的Apache文档

也许你需要将ENV:作为前缀。

 <Directory /> AuthType basic AuthUserFile $my_file require valid-user RewriteEngine on RewriteCond %{ENV:REMOTE_USER} (.+) RequestHeader set X-Forwarded-User %{ENV:REMOTE_USER}e </Directory>