Apache - 配置 - 获取相对目录标签内的路径

Apache - 配置 - 获取相对目录标签内的路径

我有 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。它可能无法正常工作,因为我不知道所有细节,但它可能会提示您从这里去哪里。

相关内容