我有一个 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 重定向到带有尾部斜杠的目录。