我有 apache 的 gitweb 配置:
#/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;
所以...我的问题是:我怎样才能获得路径目录标签?
答案1
我想说的是,这样做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
。它可能无法正常工作,因为我不知道所有细节,但它可能会提示您从这里去哪里。