¿Cómo puede I fijó Apache para servir SVN con esta configuración URL en particular?

StackOverflow https://stackoverflow.com/questions/693098

  •  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>
¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top