Как настроить apache для разрешения перекрывающихся мест (для svn и websvn)

У меня есть конфигурация apache, которая работает для SVN DAV и WebSvn. В настоящее время я обслуживаю DAV по адресу http://svnserver/svn и websvn по адресу http://svnserver/websvn.

То, что я хотел бы сделать, это служить DAV по адресу http://svnserver/ и websvn по адресу http://svnserver/websvn. Однако я не могу заставить его работать, потому что местоположение websvn находится ниже корня dav.

У меня есть два раздела, один для / и один для / websvn. С этой конфигурацией вы вообще не можете получить доступ к websvn, потому что корневой каталог вступает во владение. Я думал, что смогу использовать регулярное выражение для соответствия с DAV, но это тоже не работает:

Я пытался:

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

а также

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

но ни одна из них не работает При наличии регулярного выражения, соединение получает сброс при доступе к /. Доступ / websvn работает нормально.

Я прочитал здесь сообщение, в котором говорится, что apache делает что-то с запросом, когда передается через регулярное выражение, и это портит dav. Похоже, это правда.

Если есть что-то более определенное в этом, или какие-либо предложения относительно того, как я мог бы заставить это работать?

1 ответ

Я не думаю, что это ошибка... скорее неправильная конфигурация, если только запросы не переписываются должным образом, прежде чем они будут переданы в модуль PHP или webDAV. Чтобы заставить его работать, нужно было бы поместить /websvn как верхнее регулярное выражение в.htaccess и исключить этот запрос из webDAV, добавив флаг [L]... можно даже загружать модули apache2 по требованию, основываясь на запрашиваемое местоположение. Извините за то, что не предоставили точный синтаксис (на работе), но подсказка для размещения исключения должна заставить его работать по желанию.

Другие вопросы по тегам