Reposicionamentos dinâmicos de subversão via subdomínios (no Apache)
Estou tentando configurar uma tradução de subdomínio para repositório no Apache. Exemplo:
foobars.domain.com -> /server/svnrepos/foobars
Eu tentei fazer isso commod_rewrite:
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn(.*) /svn/%2$1 [PT]
No entanto, isso causa problemas nas operações básicas do svn; 'checkout' causa essa coisa bonita:
$ svn co http://foobars.domain.com/svn
svn: '/svn/foobars/!svn/vcc/default' path not found
Eu não tenho nenhuma limitação em termos de configuração do servidor (minhas máquinas, SO, etc). Existe alguma maneira de obter essa tradução manipulada pelo Apache? Eu olhei para hosts virtuais em massa, mas não vejo uma maneira de estender o conceito para locais DAV (eu gostaria que houvesse um VirtualSvnPath ...). A maneira como mod_dav_svn obriga a 1) definir explicitamente seu caminho de repositório svn ou 2) definir o pai, é muito limitado.
Talvez o 'SVNSpecialURI' possa ser útil, embora eu não consiga encontrar nenhuma documentação nele ...
Supondo que meu objetivo final seja mapear umsubdomínio para um SVNPath, quais são minhas opções?
Meu conf atual como uma referência:
<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>