2012-03-21 36 views
1

我有一個適用於SVN DAV和WebSvn的apache配置。我目前在http://svnserver/svn和websvn在http://svnserver/websvn服務DAV。如何配置Apache以允許重疊的位置(對於svn和websvn)

我想要做的是服務DAV在http://svnserver/和websvn在http://svnserver/websvn。但是,我無法使其工作,因爲websvn位置在dav根目錄下。

我有兩個部分,一個用於/和一個用於/ websvn。有了這個配置,你根本就無法到達websvn,因爲根目錄位置接管了。我以爲我可以使用正則表達式來匹配DAV但是,這並不工作,要麼:

我曾嘗試:

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

<Location ~ "^/(?!websvn/)" > 

但既不工作。使用正則表達式時,connecton在訪問/時會被重置。訪問/ websvn工作正常。

我讀過帖子here,這表明apache在通過正則表達式時會對請求做某些事情,並且這會使dav變得混亂。看起來這是真的。

如果有什麼更明確的,或者有什麼建議,我怎麼能得到這個工作?

+0

有一個相關的bug在https://issues.apache.org/bugzilla/show_bug.cgi?id=35077 – starfry 2012-03-21 12:19:01

+0

這是什麼正則表達式?聽起來像它可能是只要websvn首先在配置中,你可能會確定 – vinnyjames 2012-03-26 15:30:47

回答

0

我不認爲這是一個錯誤...而是一個錯誤的配置,除非請求被正確地重寫之前傳遞給PHP或webDAV模塊。爲了使其工作,需要將/ websvn放在.htaccess中作爲最頂級的正則表達式,並通過添加[L]標誌來排除這些來自webDAV的請求......一個甚至可以根據需要加載apache2模塊要求的位置。對不起,沒有提供確切的語法(在工作),但提示排除最頂層應該使其按需工作。

相關問題