у меня есть конфигурация gitweb для apache:
#/etc/apache2/conf.d/gitweb
RewriteEngine on
RewriteRule ^/\~([a-z]*\.[a-z]*)/gitweb/([a-zA-Z0-9_\-]+\.git)/?(\?.*)?$ /cgi-bin/gitweb.cgi/$1 [L,PT]
<Directory /home/*/*/public_apache/gitweb>
Options Indexes FollowSymlinks ExecCGI
DirectoryIndex /cgi-bin/gitweb.cgi
AllowOverride None
</Directory>
Моя проблема в том, что я могу установить только один корень проекта для gitweb. Итак, я хочу установить переменную для конфигурации gitweb. Что-то вроде:
SetEnv GITWEB_CONFIG_PROJECT_ROOT /home/$1/$2/public_git
Так что я мог использовать его в /etc/gitweb.conf. Что-то вроде:
$projectroot = GITWEB_CONFIG_PROJECT_ROOT;
Итак ... Мой вопрос: Как я могу получить путь от Direcotry тег?
Я бы сказал, сделай это с mod_rewrite
, что-то вроде :
RewriteRule ^\~([a-z]*\.[a-z]*)/gitweb/([a-zA-Z0-9_\-]+)\.git/?(\?.*)?$ /cgi-bin/gitweb.cgi/$1 [L,PT] [L,PT,E=GITWEB_CONFIG_PROJECT_ROOT:/home/$1/$2/public_git]
Это, конечно, если пользователь и часть репозитория находятся там, где я думаю, что они находятся в вашем RewriteRule
. Это может не сработать, так как я не знаю всех деталей, но это может дать вам подсказку, куда двигаться дальше.