Протестировано на Centos с последним деревом mod_dav_svn.

аюсь настроить перевод с субдомена в репозиторий в Apache. Пример:

foobars.domain.com -> /server/svnrepos/foobars

Я пытался сделать это сmod_rewrite:

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn(.*) /svn/%2$1 [PT]

Однако это вызывает проблемы с основными операциями SVN; «оформить заказ» вызывает эту красивую вещь:

$ svn co http://foobars.domain.com/svn
svn: '/svn/foobars/!svn/vcc/default' path not found

У меня нет никаких ограничений с точки зрения настройки сервера (мои машины, ОС и т. Д.). Есть ли способ обработать этот перевод Apache? Я смотрел на массовые виртуальные хосты, но не вижу способа расширить концепцию до мест расположения DAV (хотелось бы, чтобы был VirtualSvnPath ...). Способ mod_dav_svn заставляет вас либо 1) явно определять путь репо svn, либо 2) определять родителя, он очень ограничен.

Возможно, 'SVNSpecialURI' может быть полезен, хотя я не могу найти никакой документации по нему ...

Предполагая, что моей конечной целью является картаподобласть к SVNPath, каковы мои варианты?

Мой текущий конф в качестве ссылки:

<VirtualHost *:80 *:443>
    ServerAdmin [email protected]
    DocumentRoot "/server/www"
    ServerName domain.com
    ServerAlias *.domain.com www.domain.com domain.com
    ErrorLog logs/domain-error_log
    CustomLog logs/domain-access_log common

    DirectorySlash Off

    RewriteLogLevel 9
    RewriteLog /server/log/apache-rewrite.log

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
    RewriteRule ^/svn$ /svn/ [QSA]

    RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
    RewriteRule ^/svn(.*) /svn/%2$1 [PT]

<Location /svn>
    DAV svn
    SVNParentPath /server/svn
</Location>

Ответы на вопрос(1)

Ваш ответ на вопрос