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]