Apache 中的多 SVN 存储库

Apache 中的多 SVN 存储库

我有一个 apache 和 subversion 设置

在 apache 配置中我有

<Location /svn>
  DAV svn
  SVNParentPath c:/svn
</Location>

现在我有多个存储库

a
a_b
a_c
a_b_c
a_b_d
b

我想将它们映射为

a/svn
a/b/svn
a/c/svn
a/b/c/svn
a/b/d/svn
b/svn

为了做到这一点而不添加指令并重新启动 apache,我想制定以下规则

RewriteEngine On

RewriteCond $1 !=svn
RewriteCond $2 !=svn

RewriteRule ^/([^/]+)/(.*?)/svn/(.*)$ /$1_$2/svn/$3 [N]
RewriteRule ^/([^/]+)/svn/(.*)$ /svn/$1/$2 [L,PT]

这样我将它们重写为

/svn/a
/svn/a_b
/svn/a_c
/svn/a_b_c
/svn/a_b_d
/svn/b

目的是让客户不知道这种情况的发生

当访问没有尾随斜杠的文件夹时,mod dav 会返回到带有尾随斜杠的文件夹的重定向,从而暴露我的内部 url。

我可以重写传出的 URL 吗?!

答案1

您尝试过设置吗DirectorySlash off?它将阻止 apache 重定向到带有尾部斜杠的目录。

相关内容