apache:传递envvariables

我有一个重写规则来从远程URL(在我的控制下的不同服务器上)获取一些数据,如下所示:

RewriteRule ^/.+/remote_dir/(.*) http://11.22.33.44/remote_dir/$1 [P]

远程服务器具有htpasswd身份validation,需要绕过这个特定的请求。 我不能使用允许从IP作为IPlogging是网关(这将允许无密码访问网关后面的所有机器)。

所以我想这个请求传递envvariables,并基于它的值旁路身份validation(11.22.33.44也是在Apache)。

但我似乎无法find解决这个问题的方法。 我知道还有其他的解决scheme,例如在两台服务器上使用通用的ldap auth /或相同的用户/传递,但我不想使用它作为公共ip(云基础设施)上的11.22.33.44。

请帮我解决这个问题。

你不能通过HTTP传递环境variables。 您是否尝试过使用url中的validation令牌进行代理:

 RewriteRule ^/.+/remote_dir/(.*) http://user:[email protected]/remote_dir/$1 [P] 

另外,你可以追加一个authentication令牌到查询string,如下所示:

 RewriteRule ^/.+/remote_dir/(.*\?.*)$ \ http://11.22.33.44/remote_dir/$1;auth=s3cr3t [P,S=1] RewriteRule ^/.+/remote_dir/(.*) \ http://11.22.33.44/remote_dir/$1?auth=s3cr3t [P] 

但是,即使摘要模式,HTTP身份validation也不完全安全。