[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Noise: spicy autoindex httpd.conf workaround #fail

From: Justin Erenkrantz <justin_at_erenkrantz.com>
Date: Fri, 20 Aug 2010 09:51:50 -0700

Based on what you describe, I think this is likely what you are looking for:

http://httpd.apache.org/docs/2.0/mod/mod_mime.html#modmimeusepathinfo

http://mail-archives.apache.org/mod_mbox/httpd-dev/200209.mbox/%3C20020904211343.GA16785@apache.org%3E
http://mail-archives.apache.org/mod_mbox/httpd-dev/200306.mbox/%3C2147483647.1054772793@[10.0.1.37]%3E

HTH. -- justin

On Fri, Aug 20, 2010 at 1:27 AM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
> [Warning:  This matter is far from highly pertinent.  One tackles strange
> non-problems when in an atypical environment, such as a hotel room in CA.]
>
> I had someone ask me about Subversion autoindex support.  So, like, you
> point a web browser at
> http://svn.apache.org/repos/asf/subversion/site/publish/ and *pow* magically
> you are now looking at the index.html inside that directory.
>
> Clearly, this could be done with an hour or two of mod_dav_svn hackery and
> some new directives there.  But I was trying to come up with an httpd.conf
> workaround that did the trick.  Here's what I tried.  (On my system, all my
> Subversion repositories live inside the /repos/ Location.)
>
>   # If this is a GET request (but not a subrequest) aimed at my
>   # collection of Subversion repositories and with a trailing slash, and
>   # if there exists an index.html file inside that directory, then
>   # temporarily redirect the browser to the index.html file.
>   RewriteEngine on
>   RewriteCond %{IS_SUBREQ}              false
>   RewriteCond %{REQUEST_METHOD}         GET
>   RewriteCond %{REQUEST_URI}            ^/repos/.*/$
>   RewriteCond %{REQUEST_URI}index.html  -U
>   RewriteRule /repos/(.*)/$             /repos/$1/index.html [L,R]
>
> The result was that for every directory in which an index.html was found,
> that file was served (via a browser redirect).  Yay!  Unfortunately, the
> redirect was transmitted for directories which had no index.html child, too.
>  Boo!
>
> Sadly, I found that despite the fact that the Apache docs say about that
> "-U" test the following:
>
>   '-U' (is existing URL, via subrequest)
>   Checks whether or not TestString is a valid URL, accessible via all
>   the server's currently-configured access controls for that path. This
>   uses an internal subrequest to do the check, so use it with care - it
>   can impact your server's performance!
>
> In reality "validity" in this context seems to have nothing to do with
> "existence".  I traced the subrequest that mod_rewrite made into Subversion,
> and found that it never enters mod_dav to actually perform an existence get.
>  I guess I expected that the subrequest would GET all the way into
> Subversion, where it would get the appropriate error code (HTTP_NOT_FOUND).
>  In retrospect, I think I knew that subrequests don't behavior like
> full-fledged content-fetching requests.  But the documentation quoted above
> is pretty misleading, at any rate, IMO.
>
> --
> C. Michael Pilato <cmpilato_at_collab.net>
> CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
>
Received on 2010-08-20 18:52:43 CEST

This is an archived mail posted to the Subversion Dev mailing list.