В чем причина "svn: E195019: обнаружен цикл перенаправления для URL"?

попытка проверки из моего РЕПО SVN дает мне

    svn: E195019: Redirect cycle detected for URL ...

однако, похоже, что эта ошибка возникает только тогда, когда я нахожусь за некоторым (определенным) прокси-сервером.

Как уже обсуждалось в другом посте (см. tortoise svn дает мне "цикл перенаправления, обнаруженный для URL 'domain / svn'"), эта ошибка возникает, если SVN DAV неправильно настроен, например, используя SVNParentPath, где следует использовать SVNPath. Однако, моя конфигурация указана правильно, и, насколько я знаю - проблема возникает, только когда за прокси-сервером.

настройка репозитория более или менее стандартная, например,

    ServerAlias  svn.mydomain.com
    <Location /myrepo>
        DAV svn
        SVNPath /var/www/vhosts/mydomain.com/svn/myrepo
        AuthType Basic
        AuthName "mydomain svn"
        AuthUserFile /var/www/vhosts/svn.mydomain.com/conf/htpasswd-myproject
        # Allow read-only access to anyone, otherwise require
        # require authentication
            Require valid-user
    </Location>

4 ответов


(Я дал ответ на свой вопрос, после использования половины выходных для поиска решения):

похоже, что это сообщение об ошибке связано с тем, что репозиторий subversion находится в каталоге svn/myrepo где каталог svn также указан как DocumentRoot поддомена svn.mydomain.com. Эта директива DocumentRoot не была очевидна для меня, так как корень документа поддомена был настроен в другом файле conf (я использую Plesk для обслуживание сервера). Это создавало некоторую двусмысленность. Как только я переместил корень документа поддомена в другое место, сообщение об ошибке исчезло.

проблему было трудно отследить, потому что-насколько я знаю -

  • ошибка не появляется, если РЕПО находится на верхнем уровне поддомена, т. е. <Location /> и SVNPath /var/www/vhosts/mydomain.com/svn в вышеуказанной конфигурации.

  • ошибка отображается только в том случае, если РЕПО доступ через прокси.

  • столкновение с DocumentRoot было не так очевидно, потому что это был поддомен.

Итак: решение (при использовании Plesk): измените "DocumentRoot" поддомена в настройке Plesk (GUI) на что-то другое в каталоге SVN. "DocumentRoot" www.mydomain.com is httpdocs. "DocumentRoot" svn.mydomain.com was (по умолчанию) svn. Я изменил это на httpdocs-svn и проблема исчезла. Папка httpdocs-svn не используется в моей настройке, так как все ниже svn.mydomain.com обрабатывается DavSVN.


убедитесь, что ссылка, которую вы используете, является ссылкой "svn", а не "view".

то есть www.myrepo.com/svn/myproject/trunk / / Правильно
www.myrepo.com/view/myproject/trunk / / неверно

Это должно сработать.


проблема заключается в URL SVN, который вы дали во время регистрации отъезда. Я проверил различные сообщения для этой проблемы, но ни один из них не работал для меня. Ниже приведено очень простое решение, которое сработало для меня,

вам нужно вам csvn репозиторий используя ссылку'http://localhost:3343/csvn/repo/list и скопируйте URL-адрес "Checkout command" для репозитория, к которому вы хотите получить доступ.

этот URL вам нужно использовать в клиенте Tortoise SVN для проверки.


в моем случае проблема в том, что были несовместимые настройки между файлами конфигурации на ubuntu.

у меня есть ubuntu 18.04 и Apache2 и последний svnserver из ubuntu, и для решения проблемы перенаправления мне пришлось удалить псевдоним из двух разных файлов конфигурации: / etc/apache2/mods-включено / dav_svn и в/etc/apache2 не/сайты-включен/по умолчанию SSL-шифрования.conf

/ etc/apache2/mods-включено / dav_svn

 #Alias /svn /svn_repo/svn
 <Location /myrepo>
    DAV svn
    SVNPath /svn_repo/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /mypath/dav_svn.passwd
    Require valid-user
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</Location>

в/etc/apache2 не/сайты-включен/по умолчанию SSL-шифрования.conf

 #Alias /svn /svn_repo/svn
 <Location /myrepo>
    DAV svn
    SVNPath /svn_repo/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /mypath/dav_svn.passwd
    Require valid-user
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</Location>

очевидно после модификации мне нужно перезапустить apache:

sudo service apache2 restart