Repositorios de subversión dinámica a través de subdominios (en Apache)
Estoy tratando de configurar una traducción de subdominio a repositorio en Apache. Ejemplo:
foobars.domain.com -> /server/svnrepos/foobars
He tratado de hacer esto conmod_rewrite:
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.domain\.com$ [NC]
RewriteRule ^/svn(.*) /svn/%2$1 [PT]
Sin embargo, esto causa problemas con las operaciones básicas de svn; 'checkout' hace que esto sea bonito:
$ svn co http://foobars.domain.com/svn
svn: '/svn/foobars/!svn/vcc/default' path not found
No tengo ninguna limitación en términos de configuración del servidor (mis máquinas, sistema operativo, etc.). ¿Hay alguna forma de que Apache maneje esta traducción? He analizado hosts virtuales masivos, pero no veo una forma de extender el concepto a ubicaciones DAV (desearía que hubiera un VirtualSvnPath ...). La forma en que mod_dav_svn te obliga a 1) definir explícitamente tu ruta de repositorio svn, o 2) definir el padre, es muy limitada.
Quizás el 'SVNSpecialURI' pueda ser útil, aunque no puedo encontrar ninguna documentación sobre él ...
Asumiendo que mi objetivo final es mapear unsubdominio a un SVNPath, ¿cuáles son mis opciones?
Mi conf actual como referencia:
<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>