在ScriptAliasMatch中用户转发的机制

我正在按照本教程来设置gitolite,并在某些时候使用以下ScriptAliasMatch:

ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /var/www/bin/gitolite-suexec-wrapper.sh/$1 

目标脚本开始

 USER=$1 

所以我猜这是用来将用户名从Apache转发到suexec脚本(这确实需要它)。 但是我不明白这是怎么完成的。 ScriptAliasMatch文档使我认为/$1将被第一个匹配的正则expression式的匹配组取代。 对我来说,它从(?x)^ /(。* to) $捕获,所以这里没有关于用户的信息。

我的根本问题是USER在我的脚本是空的,所以我没有在gitolite授权。 我通过基本身份validation给我的用户名到Apache:

 <Location /> # Crowd auth AuthType Basic AuthName "Git repositories" ... Require valid-user </Location> 

在之前的ScriptAliasMatch下定义。

所以我真的想知道这应该如何工作,我错过了什么机制的一部分,所以我不检索我的脚本中的用户。

我发现以下解决schemehttps://stackoverflow.com/questions/3817478/setting-up-git-server-on-windows-with-git-http-backend-exe和https://stackoverflow.com/questions/8021167 / git-debian-apache-and-smart-http是要添加的

 SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER 

到我的Apacheconfiguration,并在我的脚本中使用$REMOTE_USER ,其中确实包含经过身份validation的用户名。 我真的想知道如何在教程中的示例应该工作。