[Catalyst-commits] r13194 - in Catalyst-Runtime/5.80/trunk: .
lib/Catalyst/Engine t/aggregate
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Sun May 2 23:27:43 GMT 2010
Author: t0m
Date: 2010-05-03 00:27:43 +0100 (Mon, 03 May 2010)
New Revision: 13194
Modified:
Catalyst-Runtime/5.80/trunk/Changes
Catalyst-Runtime/5.80/trunk/lib/Catalyst/Engine/CGI.pm
Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_engine_cgi-prepare_path.t
Log:
Back out crazy heuristics
Modified: Catalyst-Runtime/5.80/trunk/Changes
===================================================================
--- Catalyst-Runtime/5.80/trunk/Changes 2010-05-02 23:16:25 UTC (rev 13193)
+++ Catalyst-Runtime/5.80/trunk/Changes 2010-05-02 23:27:43 UTC (rev 13194)
@@ -1,9 +1,6 @@
# This file documents the revision history for Perl extension Catalyst.
Bug fixes:
- - Additional fix for getting the base application path right when rewriting
- requests into an application sub path with mod_alias and mod_rewrite on
- Apache.
- Ensure to always cleanup temporary uploaded files in all cases, even
when exceptions occur during request processing, using HTTP::Body's
->cleanup feature. (RT#41442)
Modified: Catalyst-Runtime/5.80/trunk/lib/Catalyst/Engine/CGI.pm
===================================================================
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst/Engine/CGI.pm 2010-05-02 23:16:25 UTC (rev 13193)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst/Engine/CGI.pm 2010-05-02 23:27:43 UTC (rev 13194)
@@ -128,7 +128,6 @@
else {
$base_path = $script_name || '/';
}
-# $base_path .= '/' unless $base_path =~ m{/$};
# If we are running as a backend proxy, get the true hostname
PROXY_CHECK:
@@ -158,15 +157,20 @@
if (my $req_uri = $ENV{REQUEST_URI}) {
$req_uri =~ s/^\Q$base_path\E//;
$req_uri =~ s/\?.*$//;
- if ($req_uri && $req_uri ne '/') {
+ if ($req_uri) {
+ # Note that if REQUEST_URI doesn't start with a /, then the user
+ # is probably using mod_rewrite or something to rewrite requests
+ # into a sub-path of their application..
# This means that REQUEST_URI needs information from PATH_INFO
# prepending to it to be useful, otherwise the sub path which is
# being redirected to becomes the app base address which is
# incorrect.
- my ($match) = $req_uri =~ m{^(/?[^/]+)};
- my ($path_info_part) = $path_info =~ m|^(.*?\Q$match\E)|;
- substr($req_uri, 0, length($match), $path_info_part)
- if $path_info_part;
+ if (substr($req_uri, 0, 1) ne '/') {
+ my ($match) = $req_uri =~ m|^([^/]+)|;
+ 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;
}
}
Modified: Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_engine_cgi-prepare_path.t
===================================================================
--- Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_engine_cgi-prepare_path.t 2010-05-02 23:16:25 UTC (rev 13193)
+++ Catalyst-Runtime/5.80/trunk/t/aggregate/unit_core_engine_cgi-prepare_path.t 2010-05-02 23:27:43 UTC (rev 13194)
@@ -87,6 +87,7 @@
}
{
+ local $TODO = 'Another mod_rewrite case';
my $r = get_req (
PATH_INFO => '/auth/login',
SCRIPT_NAME => '/tx',
More information about the Catalyst-commits
mailing list