From 3058cd0ec67c2d784ddd73fcfafa3382e53876c4 Mon Sep 17 00:00:00 2001 From: BafS Date: Mon, 18 Jan 2021 20:06:40 +0100 Subject: [PATCH] Revert #38614, add assert to avoid regression --- .../Component/HttpFoundation/Request.php | 12 +++--------- .../HttpFoundation/Tests/RequestTest.php | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php index b72cbbfc12..3c69f20ff0 100644 --- a/src/Symfony/Component/HttpFoundation/Request.php +++ b/src/Symfony/Component/HttpFoundation/Request.php @@ -1836,15 +1836,9 @@ class Request } $basename = basename($baseUrl); - if (empty($basename) || !strpos(rawurldecode($truncatedRequestUri).'/', '/'.$basename.'/')) { - // strip autoindex filename, for virtualhost based on URL path - $baseUrl = \dirname($baseUrl).'/'; - - $basename = basename($baseUrl); - if (empty($basename) || !strpos(rawurldecode($truncatedRequestUri).'/', '/'.$basename.'/')) { - // no match whatsoever; set it blank - return ''; - } + if (empty($basename) || !strpos(rawurldecode($truncatedRequestUri), $basename)) { + // no match whatsoever; set it blank + return ''; } // If using mod_rewrite or ISAPI_Rewrite strip the script filename diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php index e2d04185a0..d95bba8fcd 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php @@ -1770,8 +1770,8 @@ class RequestTest extends TestCase 'SCRIPT_NAME' => '/foo/app.php', 'PHP_SELF' => '/foo/app.php', ], - '/sub/foo', - '/bar', + '', + '/sub/foo/bar', ], [ '/sub/foo/app.php/bar', @@ -1790,8 +1790,18 @@ class RequestTest extends TestCase 'SCRIPT_NAME' => '/foo/app2.phpx', 'PHP_SELF' => '/foo/app2.phpx', ], - '/sub/foo', - '/bar/baz', + '', + '/sub/foo/bar/baz', + ], + [ + '/foo/api/bar', + [ + 'SCRIPT_FILENAME' => '/var/www/api/index.php', + 'SCRIPT_NAME' => '/api/index.php', + 'PHP_SELF' => '/api/index.php', + ], + '', + '/foo/api/bar', ], ]; }