Как я могу настроить Apache для обслуживания SVN с этой конкретной конфигурацией URL? - PullRequest
4 голосов
/ 28 марта 2009

У меня есть VPS, и я пытаюсь разместить несколько проектов SVN. Я хотел бы, чтобы пути URL были такими:

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

Однако, с кодом ниже, первое (страница приветствия HTML) не отображается, поскольку блок Location имеет приоритет над DocumentRoot.

Установка блока местоположения на <Location /repos> работает, но тогда мои URL становятся http://svn.domain.com/repos/project1, что мне не нравится.

Есть предложения?

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

Ответы [ 3 ]

1 голос
/ 28 марта 2009

вы можете использовать директиву SVNPATH , однако вам нужно установить три местоположения (для каждого проекта требуется свое собственное)

0 голосов
/ 30 марта 2009

А как насчет mod_rewrite ? Вы можете настроить папку для файлов, отличных от SVN (http://example.com/info/),, а затем использовать mod_rewrite для перенаправления запросов на '/' или '/index.php' в '/info/index.php'. Будет ли это работать?

0 голосов
/ 28 марта 2009

Вы можете обойти это без необходимости изменять конфигурацию Apache каждый раз, когда вы добавляете новый проект, добавляя поддомен для ваших SVN-репозиториев. Вы бы получили что-то вроде этого:

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

Затем вам нужно будет получить доступ к своим репозиториям с URL-адресами вида http://svn.domain.com/svn/project1/,, но если вы хотите добавить project4 и т. Д., Все, что вам нужно сделать, это добавить новый репозиторий в /var/svn.

...