Sounds great, but how would i do something simular to:

      $r->add_config([sprintf('<LocationMatch
"%s/?">', $uripath),
                          'DirectoryIndex .',
                          'Options +Indexes',
                          'Dav svn',
                          sprintf("SVNPath %s",
$localpath),
                          '</LocationMatch>']);


and

      $r->add_config([sprintf('<Directory "%s">',
$localpath), 'DirectoryIndex .', 'Options +Indexes',
'Dav On', '</Directory>']);


--- "Philippe M. Chiasson" <[EMAIL PROTECTED]>
wrote:

> Glenn Martin wrote:
> > Actually if i read the documentation correctly, im
> > doing it just right. Map to Storage is right
> before it
> > get mapped to a Location/Directory... and thus
> this is
> > where id want to add Directory/Location and Alias
> > directives based off of the incomming URI... Im
> trying
> > to control DAV input. Take the URI, translate it
> to a
> > Folder, Check the folders contents to see if it
> > matches a Subversion repository and if it does map
> the
> > Location to SVN Dav and that repository otherwise
> Map
> > the Directory to the URI using an Alias and a
> > Directory and turn on normal WebDAV... Then return
> > Decline to Apache then tries to Match the URI to
> the
> > Modified Config. Which will active the correct
> module
> > for the correct folder...
> 
> I hope I understood this correctly, so apologies if
> I didn't.
> 
> > However i need this configuration change to be
> > Temporary... Per request only... I need the Alias'
> or
> > Location/Directory sections to no longer exist..
> 
> You can't 'remove' configuration directives you've
> injected
> in httpd. And those are very *global* and would
> affect
> much more than the current request.
> 
> > What handler do i use? and how do i reset the
> > configuration?
> 
> You don't reset the configuration, but you simply
> take a different
> approach.
> 
> Instead of trying to inject httpd configuration,
> your MapToStorage handler
> needs to emulate Alias/Location directives. For
> instance, if you needed
> to Alias /foo to /var/www/foo, instead of doing what
> I believe you are currently
> doing:
> 
> $r->add_config(["Alias /foo /var/www/foo"]);
> 
> Simply do what mod_alias would have done...
> 
> $r->filename(File::Spec->catfile("/var/www",
> $r->uri));
> 
> And you get pre-request behaviour just like you
> wanted. And it's tons faster too ;-)
> 
>
--------------------------------------------------------------------------------
> Philippe M. Chiasson
> m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID :
> 88C3A5A5
> http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680
> 1AE5 3631 CB32 A107 88C3A5A5
> 

Reply via email to