Yes, It's a bug in <Perl> Sections. Confirmed in 1.26.

But it is worse.
 
With the following in httpd.conf try /info vs /status vs /status/info vs
/info/status, with and without the commented part, (if one section
fails, if two sections works)

<Perl>
  $Location{'/status'} = {
     SetHandler => 'server-status',
     Allow => 'from localhost'
  };
#</Perl>
#<Perl>
  $Location{'/info'} = {
     SetHandler => 'server-info',
     Allow => 'from localhost'
 };
</Perl>

I'm digging into it.

Regards,

Salvador Ortiz.

 
On Fri, 2002-02-01 at 20:56, David Wheeler wrote:
> Okay, let me try again.
> 
> I have a simple module I've written that demonstrates the problem. here
> it is:
> 
> package MyTest;
> our $VERSION = '0.1';
> use Apache;
> 
> sub one {
>     print STDERR "One\n";
>     print STDOUT "One\n";
>     return Apache::OK;
> }
> 
> sub two {
>     print STDERR "Two\n";
>     print STDOUT "Two\n";
>     return Apache::OK;
> }
> 
> package Apache::ReadConfig;
> use strict;
> use warnings;
> 
> our $NameVirtualHost = '*:80';
> 
> our %VirtualHost = ('*:80' => {
>     ServerName => '_default_',
>     DocumentRoot => '/usr/local/apache/htdocs',
>     Location => {
>         '/one' => {
>              SetHandler         => 'perl-script',
>              PerlHandler        => 'MyTest::one'
>          },
>         '/two' => {
>              SetHandler         => 'perl-script',
>              PerlHandler        => 'MyTest::two'
>          }
>     }
> });
> 
> 
> Now, if I execute this from httpd.conf by simply calling
> 
>   PerlModule MyTest
> 
> Here's what I get for my requests:
> 
> URL                         Prints
> ===================         ======
> http://myserver/one          One
> http://myserver/two          Two
> http://myserver/one/foo      One
> http://myserver/two/foo      Two
> http://myserver/one/two      One
> http://myserver/one/twofoo   One
> http://myserver/one/two/foo  One
> http://myserver/two/one      One
> http://myserver/two/onefoo   One
> http://myserver/two/one/foo  One
> 
> It's the last three requests that are the problem. Because I'm hitting
> the '/two' location, I expect each of those examples to print "Two". But
> because they each have "one" in the URL, they all print "One"!
> 
> Why is this? It seems to be acting like LocationMatch directives rather
> than Location. Could this be a bug in how the Perl sections work? If
> not, how do I get that last request to print "Two" instead of "One"?
> Even if it *is* a bug, how do I get the proper behavior?
> 
> TIA,
> 
> David
> 
> -- 
> David Wheeler                                     AIM: dwTheory
> [EMAIL PROTECTED]                                 ICQ: 15726394
>                                                Yahoo!: dew7e
>                                                Jabber: [EMAIL PROTECTED]
> 


Reply via email to