You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Doug MacEachern <do...@covalent.net> on 2000/12/22 05:47:23 UTC

Re: Recognizing server config, like Aliases, from modules

On Thu, 12 Oct 2000, Rodney Broom wrote:

> Hi all,
> 
> I've got a set of new modules that do things like session handling, URI
> rewriting, authentication, etc. I've got a set of tests to prevent some rewrite
> problems that look like this:
> 
>     if ($uri =~ m|^/cgi-bin/|) {
>         return DECLINED;
>     if ($uri =~ m|^/icons/|) {
>         return DECLINED;
> etc.
> 
> This is done to allow access to /cgi-bin and /icons and the like without
> rewriting the URI. UserDir is the same way. The problem is the fact that now
> folks can't ajust the conf file without ajusting the module, too. I guess I
> could slurp up the config file on load and figure it out for myself, but that
> doesn't seem very healthy or very efficient. What I'd like is a method:
> 
>   $r->get_aliases
> 
> But I don't guess that exists, huh? Any thoughts?

no, because those structures are private do mod_alias.
you can actually call the mod_alias translate handler directly to see if
there is an Alias configured for the uri:

use Apache::Module ();

my $rr = $r->lookup_uri($r->uri);
my $mod_alias = Apache::Module->top_module->find("mod_alias");
my $rc = $mod_alias->translate_handler->($rr);

if ($rc == OK) {
    #an Alias matched
}

or, if you configure your Alias' with <Perl> config, you can save it to
match against yourself.