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.ga16...@apache.org%3e
> http://mail-archives.apache.org/mod_mbox/httpd-dev/200306.mbox/%3c2147483647.1054772...@[10.0.1.37]%3e
> 
> HTH.  -- justin
> 
> On Fri, Aug 20, 2010 at 1:27 AM, C. Michael Pilato <cmpil...@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 <cmpil...@collab.net>
>> CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
>>


-- 
C. Michael Pilato <cmpil...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Reply via email to