Why do you want mod_rewrite at all? Enabling that mod_mime
directive will let mod_autoindex remap / to /index.html when it exists
in the virtual filesystem. -- justin
On Mon, Aug 23, 2010 at 10:48 AM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
> Hrm. I'm not seeing the connection here. I'm looking for a way to pull off
> a Rewrite condition based on the existence of a given URI. The docs imply
> that this can be done with "RewriteCond SOME_URI -U", but appear to just be
> wrong -- the existence of SOME_URI doesn't appear to tested at all, only
> it's accessibility (from an authn/authz standpoint).
>
>
> On 08/20/2010 12:51 PM, Justin Erenkrantz wrote:
>> 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
>>>
>
>
> --
> C. Michael Pilato <cmpilato_at_collab.net>
> CollabNet <> www.collab.net <> Distributed Development On Demand
>
Received on 2010-08-23 19:51:49 CEST