Apache的SVN:通过客户端访问存储库禁止,HTTP是好吗?

我的networking服务器上的SVN似乎已经打破了,我做了一些改变。 它被configuration为一个HTTPS虚拟主机的一部分,不是普遍可访问的。 我的SVN客户端给出错误'禁止访问(回购)',但是如果我通过Web界面(SVNListParentPath打开),一切工作正常,使用相同的URL。 我甚至可以通过浏览器访问这些文件。 当我使用客户端时,我注意到我的Apache日志表明当我的SVN存储库位于'/ home / svn'下时,客户端正试图访问'/ var / www / mysite / svn'。 在使用Elinks进行故障排除时,我得到了一个redirect页面,所以这可能意味着我的服务器使用某种redirect,这对SVN客户端来说是失败的。 网站的其他部分通过SSL正常工作,只是SVN不起作用。 谢谢。

这里是我的这个网站的Apacheconfiguration:

#mydomain.co.uk NameVirtualHost *:443 <VirtualHost *:80> ServerAdmin [email protected] ServerName mydomain.co.uk DocumentRoot /var/www/mydomain <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/mydomain> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <Directory /usr/share/ampache> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </Directory> <Directory /var/www/mydomain/opendocman> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </Directory> <Directory /var/www/mydomain/44kg> Options Indexes FollowSymLinks MultiViews Order deny,allow Deny from all Allow from 192.168.1 </Directory> <Directory /var/www/mydomain/69td> Options Indexes FollowSymLinks MultiViews Order deny,allow Deny from all Allow from 192.168.1 127.0.0.1 localhost SCGIHandler on SCGIServer 127.0.0.1:5000 </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorDocument 404 /fourohfour.html ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] ServerName mydomain.co.uk DocumentRoot /var/www/mydomain/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/mydomain/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <Directory /var/www/mydomain/44kg> Order deny,allow Deny from all </Directory> <Location /svn> DAV svn SVNParentPath /home/svn SVNListParentPath on AuthType Basic AuthName "Excalibur SVN Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> SSLEngine on SSLCertificateFile /etc/ssl/certs/QPR/qpr.pem SSLCertificateKeyFile /etc/ssl/certs/QPR/ca.key </VirtualHost> #SquirrelMail <VirtualHost *:443> ServerName webmail.mydomain.co.uk DocumentRoot /usr/share/squirrelmail SSLEngine on SSLCertificateFile /etc/ssl/certs/QPR/qpr.pem SSLCertificateKeyFile /etc/ssl/certs/QPR/ca.key </VirtualHost> 

最后一次工作是在我添加networking邮件之前,但禁用它并不会带来SVN。 我没有真正看到redirect页面 – 它给了我足够的时间来发现它是一个302redirect之前发生,我一直无法重现它。 通过浏览器,我所有的存储库都可以在https://mydomain.co.uk/svn/(repository)find ,但客户端中的相同URL只是在SVN CLI和Dreamweaver中都出现这个错误:

 Pegasus:Uni Gargravarr$ svn update svn: access to '/svn/Uni' forbidden 

得到它了。
我完全忘记了我最近在Apache中安装了“mod-evasive”。 禁用它使SVN立即备份。 发现在Debian中有一个已知的mod-evasive和mod-dav-svn的bug。 完全按照这个问题在这里:

问题与Apache的SVN服务器(403禁止)
愚蠢的是,我在发帖之前也读过这个问题。 猜猜我跳过了最后的post。

TL; DR:Mod-evasive和Apache2 / SVN不相处:)