¿Cómo puede I fijó Apache para servir SVN con esta configuración URL en particular?
-
22-08-2019 - |
Pregunta
Tengo un VPS y yo estoy tratando de alojar varios proyectos de SVN. Me gustaría que las rutas de URL que ser así:
http://svn.domain.com -> Welcome HTML page (at /var/www/svn.domain.com/httpdocs/index.php)
http://svn.domain.com/project1 -> Project 1 SVN Root
http://svn.domain.com/project2 -> Project 2 SVN Root
http://svn.domain.com/project3 -> Project 3 SVN Root
Sin embargo, con el código de abajo, lo primero (página HTML de bienvenida) no se presenta, como el bloque de Localización tiene prioridad sobre el DocumentRoot.
Configuración de la ubicación del bloque de <Location /repos>
obras, pero luego mis URL convertido http://svn.domain.com/repos/project1
, que no me gusta.
¿Alguna sugerencia?
<VirtualHost *>
ServerName svn.domain.com
DocumentRoot /var/www/svn.domain.com/httpdocs
<Location />
DAV svn
SVNParentPath /var/svn
SVNIndexXSLT "/svnindex.xsl"
AuthzSVNAccessFile /var/svn/access
SVNListParentPath On
# try anonymous access first, resort to real
# authentication if necessary.
Satisfy Any
Require valid-user
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/svn/passwd
</Location>
</VirtualHost>
<Directory /var/svn>
Allow from all
</Directory>
Solución
puede utilizar SVNPath Directiva, sin embargo hay que establecer tres posiciones (cada proyecto necesita su propia)
Otros consejos
Se puede evitar esto sin tener que cambiar la configuración de Apache cada vez que añada un nuevo proyecto mediante la adición de un subdominio para sus repositorios SVN. Acabaría con algo como esto:
<VirtualHost *>
ServerName svn.domain.com
DocumentRoot /var/www/svn.domain.com/httpdocs
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNIndexXSLT "/svnindex.xsl"
AuthzSVNAccessFile /var/svn/access
SVNListParentPath On
# try anonymous access first, resort to real
# authentication if necessary.
Satisfy Any
Require valid-user
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/svn/passwd
</Location>
<Directory /var/svn>
Allow from all </Directory>
<Directory /var/www/svn.domain.com/httpdocs>
# Doc. root directives here</Directory>
Se podría entonces tiene que acceder a sus repositorios con URLs de tipo http: // SVN. domain.com/svn/project1/ , pero si desea agregar proyecto4 etc. todo lo que tiene que hacer es añadir el nuevo repositorio en / var / svn.
¿Qué hay de mod_rewrite ? Usted podría crear una carpeta para no SVN cosas ( http://example.com/info/ ) , a continuación, utilizar mod_rewrite para redirigir solicitudes de '/' o '/index.php' a '/info/index.php'. Habría que trabajar?