I worked on this problem today and reached the following solution. If
you try this out and it works (or if you try it out and it doesn't
work) please let me know!
<VirtualHost *:80>
ServerName svn.example.com
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteRule ^/(favicon\.ico|robots\.txt|svnrsrc/.*)$ http://
www.example.com/svnroot/$1 [P,L]
<Location />
DAV svn
SVNParentPath /path/to/subversion/repositories
SVNListParentPath on
SVNIndexXSLT /svnrsrc/index.xslt
AuthType Basic
AuthName "Subversion Repositories"
AuthUserFile /path/to/subversion/conf/users
Require valid-user
</Location>
</VirtualHost>
Basically, no matter what manner of Alias directives and the like I
tried, the DAV server in the Location directive always wanted to take
precedence. The only way I found to conditionally override the DAV
server was to proxy the request away to a separate vhost using
mod_rewrite. I only do this for GET requests, and only for
favicon.ico, robots.txt and a directory svnrsrc where you can put
xslt files, css files, images and anything else you might need to
properly show your directory listings. All other requests are still
handled by mod_dav_svn.
Here, I just made a directory svnroot in the document root of my
normal vhost (www.example.com) to contain the favicon.ico, robots.txt
and svnrsrc that will be used by svn.example.com. It shouldn't bother
anybody there. If you'd like, you should even be able to prevent
people from accessing it directly via http://www.example.com/svnroot/
and make it only available via the proxied connection, like this:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /wherever/the/document/root/is
...
<Location /svnroot>
Order allow,deny
Allow from 127.0.0.1
</Location>
</VirtualHost>
Note: This is your normal vhost, not your Subversion vhost.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sun Jul 16 04:33:04 2006