Apache 位置匹配和DAV svn
我试图通过多个URL访问Subversion存储库。为此,我考虑使用LocationMatch指令。我的配置是:Apache 位置匹配和DAV svn,apache,svn,apache2,webdav,mod-dav-svn,Apache,Svn,Apache2,Webdav,Mod Dav Svn,我试图通过多个URL访问Subversion存储库。为此,我考虑使用LocationMatch指令。我的配置是: <Location ~ "/(svn|repository)"> DAV svn SVNPath /opt/svn AuthzSVNAccessFile /etc/subversion/access </Location> DAV svn SVNPath/opt/svn authzsvnacessfile/etc/subve
<Location ~ "/(svn|repository)">
DAV svn
SVNPath /opt/svn
AuthzSVNAccessFile /etc/subversion/access
</Location>
DAV svn
SVNPath/opt/svn
authzsvnacessfile/etc/subversion/access
上述配置不起作用。奇怪的是,如果我使用这个配置,它对两个URL都很有效:
<Location ~ "/(svn|repository)">
SetHandler server-status
</Location>
SetHandler服务器状态
对我来说,DAV svn和LocationMatch的组合似乎没有真正起作用,或者我在这里做错了什么?客户端是否收到错误,HTTP错误日志中是否有错误 如果将多个位置映射到单个SVN回购,SVN可能会感到困惑。看见我正在为另一个问题排除故障 删除正则表达式是否有效?我想是的,但我想核实一下
<Location "/svn">
我也有问题,因为我想使用正则表达式来避免其他子路径被我的对手抓住 e、 g
问题似乎是,当您在位置
或位置匹配
部分使用正则表达式时,Apache服务器正在使用正则表达式的内容重写请求上的一些元数据(可能是为了让接受此请求的处理程序知道它是正则表达式的目标)
当dav_svn处理程序获取请求时,它会参考此元数据来解析获取被请求资源所需的路径。由于正则表达式不是实路径,因此会出现如下错误:
svn: PROPFIND of '%5E/(svn%7Crepository)/!svn/vcc/default': Could not parse response status line
我没有任何修复方法,除了不在dav_svn中使用正则表达式:在我的例子中,我想使用XSLT格式化程序在使用web浏览器访问subversion存储库时为其显示一个漂亮的UI,并且XSL资源应该在托管subversion repo的同一主机名上的不同路径上访问,因此,我希望使用正则表达式Location
使XSL资源的路径不会命中dav_svn处理程序。这是一个失败,所以我只是在不同的主机名上部署了WebVN,就是这样。有效的快速解决方案:只需将您的引用添加到每个vhost,您就可以访问svn repro
<Location "/test">
svn: PROPFIND of '%5E/(svn%7Crepository)/!svn/vcc/default': Could not parse response status line