Come posso configurazione di Apache per servire SVN con questa particolare configurazione URL?

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

  •  22-08-2019
  •  | 
  •  

Domanda

Ho un VPS e sto cercando di ospitare diversi progetti SVN. Mi piacerebbe i percorsi URL per essere come questo:

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

Tuttavia, con il codice qui sotto, la prima cosa (pagina HTML Benvenuti) non si presenta, come il blocco di posizione ha la precedenza sul DocumentRoot.

Impostazione del blocco di posizione a <Location /repos> opere, ma poi i miei URL diventare http://svn.domain.com/repos/project1, che non mi piace.

Qualche suggerimento?

<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>
È stato utile?

Soluzione

è possibile utilizzare SVNPath di direttiva, tuttavia bisogna impostare tre posizioni (ogni progetto ha bisogno di un proprio)

Altri suggerimenti

Si potrebbe ottenere intorno a questo senza dover modificare la configurazione di Apache ogni volta che si aggiunge un nuovo progetto con l'aggiunta di un sottodominio per i repository SVN. Faresti finisce con qualcosa di simile:

<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>

Si sarebbe quindi necessario accedere ai repository con URL del modulo http: // svn. domain.com/svn/project1/ , ma se si desidera aggiungere project4 ecc tutto quello che dovete fare è aggiungere il nuovo repository in / var / svn.

mod_rewrite ? Si potrebbe impostare una cartella per i non-SVN roba ( http://example.com/info/ ) , quindi utilizzare mod_rewrite per reindirizzare le richieste per '/' o 'index.php' a '/info/index.php'. Vorrei che lavorare?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top