diff --git a/lib/Piglet/Routes.pm b/lib/Piglet/Routes.pm index 3efc1a3..9d30c8f 100644 --- a/lib/Piglet/Routes.pm +++ b/lib/Piglet/Routes.pm @@ -17,9 +17,8 @@ sub match { # magic path_info if (exists $m->{path_info}) { if ($env->{PATH_INFO} =~ s!^(.*?)(/?)\Q$m->{path_info}\E$!!) { - $m->{path_info} = $2 . $m->{path_info}; $env->{SCRIPT_NAME} .= $1; - $env->{PATH_INFO} = $m->{path_info}; + $env->{PATH_INFO} = $2 . $m->{path_info}; } else { # Hmm what should it do? } diff --git a/t/routes/simple.t b/t/routes/simple.t index 3b4c635..5917c35 100644 --- a/t/routes/simple.t +++ b/t/routes/simple.t @@ -30,7 +30,7 @@ $r->connect("/admin/{path_info:.*}", { app => "Admin" }); is $env->{PATH_INFO}, '/admin/login/me'; my $m = $r->match($env); - is_deeply $m, { app => "Admin", path_info => "/login/me" }; + is_deeply $m, { app => "Admin", path_info => "login/me" }; is $env->{SCRIPT_NAME}, '/admin'; is $env->{PATH_INFO}, '/login/me'; } @@ -39,7 +39,7 @@ $r->connect("/admin/{path_info:.*}", { app => "Admin" }); my $env = env "/admin/0"; my $m = $r->match($env); - is_deeply $m, { app => "Admin", path_info => "/0" }; + is_deeply $m, { app => "Admin", path_info => "0" }; is $env->{SCRIPT_NAME}, '/admin'; is $env->{PATH_INFO}, '/0'; }