X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FCGI.pm;h=4c0d9b900717f7ce681199c4bf283723854acdc0;hb=f54950f51a3f07623b26ddfa20257e70a67bb404;hp=9df14449608ab5ccda80b3ff11c4d23c3c95c30a;hpb=b760ac3de30354fa5e1e7969c21f31521f0d1783;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine/CGI.pm b/lib/Catalyst/Engine/CGI.pm index 9df1444..4c0d9b9 100644 --- a/lib/Catalyst/Engine/CGI.pm +++ b/lib/Catalyst/Engine/CGI.pm @@ -167,8 +167,9 @@ sub prepare_path { # incorrect. if (substr($req_uri, 0, 1) ne '/') { my ($match) = $req_uri =~ m|^([^/]+)|; - my ($path_info_part) = $path_info =~ m|^(.*?$match)|; - substr($req_uri, 0, length($match), $path_info_part); + my ($path_info_part) = $path_info =~ m|^(.*?\Q$match\E)|; + substr($req_uri, 0, length($match), $path_info_part) + if $path_info_part; } $path_info = $req_uri; } @@ -195,7 +196,7 @@ sub prepare_path { my $query = $ENV{QUERY_STRING} ? '?' . $ENV{QUERY_STRING} : ''; my $uri = $scheme . '://' . $host . '/' . $path . $query; - $c->request->uri( bless \$uri, $uri_class ); + $c->request->uri( bless(\$uri, $uri_class)->canonical ); # set the base URI # base must end in a slash