如何配置apache以允许重叠位置(对于svn和websvn)

时间:2012-03-21 12:09:43

标签: apache svn websvn

我有一个适用于SVN DAV和WebSvn的apache配置。我目前正在http://svnserver/svnhttp://svnserver/websvn的websvn服务DAV。

我想做的是在http://svnserver/处为DAV而在http://svnserver/websvn处为websvn提供服务。但是,我无法让它工作,因为websvn位置低于dav根目录。

我有两个部分,一个用于/和一个用于/ websvn。使用此配置,根本无法访问websvn因为根位置接管。我以为我可以使用正则表达式匹配DAV,但这也不起作用:

我试过了:

<LocationMatch "^/(?!websvn/)" >

<Location ~ "^/(?!websvn/)" >
但是没有工作。正确使用正则表达式时,访问/时会重置connecton。访问/ websvn工作正常。

我读了一篇帖子here,暗示apache在通过正则表达式时会对请求做些什么,这会让dav迷惑。看起来这是真的。

如果有更明确的内容,或者有关如何让它发挥作用的任何建议?

1 个答案:

答案 0 :(得分:0)

我认为这不是一个错误...而是错误配置,除非在传递到PHP或webDAV模块之前正确地重写请求。为了使它工作,需要将/ websvn作为最顶层的正则表达式放入.htaccess并通过添加[L]标志从webDAV中排除这些请求...一个甚至可以按需加载apache2模块,基于要求的位置。很抱歉没有提供准确的语法(在工作中),但是排除最顶层的提示应该使其按预期工作。