Страница 1 из 1

Apache: Путь к правам svn в зависимости от имени базы

Добавлено: 2014-01-23 19:50:14
vassin
Условия: Apache находится за nginx и используется только для раздачи Subversion.

Полная конфигурация (без loadmodule и прочего, обычного):

Код: Выделить всё

<IfModule mod_dav_svn.c>
  <Location /svn/>

    DAV svn

    SVNParentPath /DB/svn/
    SVNListParentPath on

    AuthType Basic
    AuthName "Home Subversion"
    AuthUserFile /DB/conf/.htaccess

    Require valid-user

    SVNPathAuthz on
    AuthzSVNAccessFile /DB/conf/.svnaccess

  </Location>
</IfModule>
Чего хочу: Хочу, чтобы в зависимости от URL базы Subversion права брались из каталога с именем, извлечённым из URL.

Например: Можно ли это реализовать при помощи конструкций Apache?
Я читал про LocationMatch и про RewriteRule, но как-то не смог понять, как это сделать.

Пробовал конструкции вида:

Код: Выделить всё

<IfModule mod_dav_svn.c>
  <LocationMatch /svn/(.*)/?.*>
...
    SVNPathAuthz on
    AuthzSVNAccessFile /DB/svn/$1conf/.svnaccess

  </LocationMatch>
</IfModule>
Но она не работает.

Re: Apache: Путь к правам svn в зависимости от имени базы

Добавлено: 2014-01-24 2:46:53
vassin
Всё оказалось намного проще: В начальной конфигурации нужно было использовать директиву

Код: Выделить всё

AuthzSVNReposRelativeAccessFile .svnaccess
, которая как раз для того и нужна, чтобы сказать Subversion, что искать нужно относительно имени базы. И он ищет файл в директории

Код: Выделить всё

/DB/svn/имя_базы_svn/conf/.svnaccess
.