plack / Plack

PSGI toolkit and server adapters
http://plackperl.org/
Other
486 stars 214 forks source link

"Your request path doesn't match your Location" #352

Open johto opened 11 years ago

johto commented 11 years ago

Hi,

Given this Apache2 configuration:

<Location /foo> SetHandler perl-script PerlResponseHandler Plack::Handler::Apache2 PerlSetVar psgi_app bar.psgi

Doing a request to http://server.name//foo gives me this error:

Your request path is '//foo' and it doesn't match your Location(Match) '/foo'. This should be due to the configuration error. See perldoc Plack::Handler::Apache2 for details.

"perldoc Plack::Handler::Apache2" didn't tell me anything useful, and this doesn't look like a configuration error to me.

Thoughts?

miyagawa commented 11 years ago

Do you actually have a Location block to contain that SetHandler? If so what is it?

johto commented 11 years ago

Oops. I had it in my original post, but it got eaten by the github formatting. I'll try again:

<Location /foo>
        SetHandler perl-script
        PerlResponseHandler Plack::Handler::Apache2
        PerlSetVar psgi_app bar.psgi
</Location>
miyagawa commented 11 years ago

OK, yeah this is how Apache is munging double slashes into one internally while keeping that in the request URI, messing up the handler's match.

This is arguably an Apache bug or at least weird behavior, and maybe we have to work around by munging slashes into one or something.