Hi fREW

On Sat, 2009-01-17 at 12:09 +1100, Ron Savage wrote:
> Hi fREW
> 
> >So I guess my question is why is it ignoring that first directory and
> >how do I get it to stop?
> 
> I have an unreleased module CGI::Application::Test::Dispatch, which I've
> been playing with trying to reproduce your problems.
> 
> I've only tested it under Debian and Apache 2.2.
> 
> I'll try Windows later today.
> 
> So far, I don't have this specific problem of a directory being ignored.
> 
> For instance, this works: http://127.0.0.1/test.dispatch/Phase1
> 
> where as this fails: http://127.0.0.1/test.dispatch/xxxcvvv/Phase1
> as you'd expect, with this error: The requested
> URL /test.dispatch/xxxcvvv/Phase1 was not found on this server.
> 
> httpd.conf contains:
> 
> <Location /test.dispatch>
>       SetHandler perl-script
>       PerlResponseHandler CGI::Application::Test::Dispatcher
>       Order deny,allow
>       Deny from all
>       Allow from 127.0.0.1
> </Location>
> 
> More later.

Under Windows, I don't have mod_perl, so I used a CGI script.

Also, this is Apache 2.2, Strawberry Perl 5.10.0.

The code behaves exactly as under Debian, and exactly as expected.

A deliberate failure, e.g. by using
http://127.0.0.1/cgi-bin/test.dispatch.pl/xsld/Phase2
results in a 404 Not Found.

There is no directory c:\apache\htdocs\xsld.

My dispatcher is:

sub dispatch_args
{
        return
        {
                prefix => 'CGI::Application::Test::Dispatch',
                table  =>
                [
                 ''         => {app => 'main-menu', rm => 'menu'},
                 ':app/'    => {rm => 'one'},
                 ':app/:rm' => {},
                ],
        };

} # End of dispatch_args.

You'll notice the first rule used '' and not '/'. I wonder if this is
the cause of your problems.

If you have a directory such as $doc_root/xyz, and under mod_perl use
http://127.0.0.1/xyz/something, apache will match the xzy of course.

Since you are using '/', which is just $doc_root, and $doc_root
obviously exists, I think you should try as I have done above, without
the / in '/'.

Let us know what happens.

I assume you are doing that in order to get the dispatcher to control
the whole web site, but perhaps you need to do things differently.

-- 
Ron Savage
r...@savage.net.au
http://savage.net.au/index.html



#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to