diff --git a/typo3/sysext/backend/Classes/Routing/UriBuilder.php b/typo3/sysext/backend/Classes/Routing/UriBuilder.php
index 3bf642451aefd3dcbca79476e924cfb3e97108ca..d91dbf2fc89f5dcbb6452a85f28deae20b0c0972 100644
--- a/typo3/sysext/backend/Classes/Routing/UriBuilder.php
+++ b/typo3/sysext/backend/Classes/Routing/UriBuilder.php
@@ -177,9 +177,9 @@ class UriBuilder implements SingletonInterface
         } elseif (($GLOBALS['TYPO3_REQUEST'] ?? null) instanceof ServerRequestInterface
             && $GLOBALS['TYPO3_REQUEST']->getAttribute('normalizedParams') instanceof NormalizedParams
         ) {
-            $uri = $GLOBALS['TYPO3_REQUEST']->getAttribute('normalizedParams')->getRequestDir() . $path;
+            $uri = $GLOBALS['TYPO3_REQUEST']->getAttribute('normalizedParams')->getSiteUrl() . TYPO3_mainDir . $path;
         } else {
-            $uri = GeneralUtility::getIndpEnv('TYPO3_REQUEST_DIR') . $path;
+            $uri = GeneralUtility::getIndpEnv('TYPO3_SITE_URL') . TYPO3_mainDir . $path;
         }
         return GeneralUtility::makeInstance(Uri::class, $uri);
     }
diff --git a/typo3/sysext/backend/Tests/Functional/Template/Components/Buttons/Action/ShortcutButtonTest.php b/typo3/sysext/backend/Tests/Functional/Template/Components/Buttons/Action/ShortcutButtonTest.php
index d83a7c15c34df488f7e27e7beea52db1f06d2b97..7e6f8479cd535421e7b2aadf16c8971698e8c827 100644
--- a/typo3/sysext/backend/Tests/Functional/Template/Components/Buttons/Action/ShortcutButtonTest.php
+++ b/typo3/sysext/backend/Tests/Functional/Template/Components/Buttons/Action/ShortcutButtonTest.php
@@ -19,6 +19,9 @@ namespace TYPO3\CMS\Backend\Tests\Functional\Template\Components\Buttons\Action;
 
 use TYPO3\CMS\Backend\Template\Components\Buttons\Action\ShortcutButton;
 use TYPO3\CMS\Core\Core\Bootstrap;
+use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder;
+use TYPO3\CMS\Core\Http\NormalizedParams;
+use TYPO3\CMS\Core\Http\ServerRequest;
 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
 
 class ShortcutButtonTest extends FunctionalTestCase
@@ -31,6 +34,11 @@ class ShortcutButtonTest extends FunctionalTestCase
 
         $this->setUpBackendUserFromFixture(1);
         Bootstrap::initializeLanguageObject();
+        $serverParams = array_replace($_SERVER, ['HTTP_HOST' => 'example.com', 'SCRIPT_NAME' => '/typo3/index.php']);
+        $request = new ServerRequest('http://example.com/typo3/index.php', 'GET', null, $serverParams);
+        $GLOBALS['TYPO3_REQUEST'] = $request
+            ->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_BE)
+            ->withAttribute('normalizedParams', NormalizedParams::createFromServerParams($serverParams));
     }
 
     /**
diff --git a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListCopyToClipboard.html b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListCopyToClipboard.html
index af066c300b7d2562b76b0827c22e34ca3fd617d4..ff6e72c356df87b302bd6f563a2a57a46626cc4d 100644
--- a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListCopyToClipboard.html
+++ b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListCopyToClipboard.html
@@ -25,7 +25,7 @@
         </button>
     </li>
     <li>
-        <typo3-copy-to-clipboard text="http://vendor/phpunit/phpunit/module/web/list">
+        <typo3-copy-to-clipboard text="http://example.com/typo3/module/web/list">
             <button type="button" class="dropdown-item btn btn-link">
                 <span class="t3js-icon icon icon-size-small icon-state-default icon-actions-link" data-identifier="actions-link">
 	                <span class="icon-markup">
diff --git a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListSingleTableCopyToClipboard.html b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListSingleTableCopyToClipboard.html
index 2fc07908f7f0fdfc93ef5befc853d98f85c568db..eae87f3988d0890588a5a9cd566a8e357e35a9cf 100644
--- a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListSingleTableCopyToClipboard.html
+++ b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/RecordListSingleTableCopyToClipboard.html
@@ -25,7 +25,7 @@
         </button>
     </li>
     <li>
-        <typo3-copy-to-clipboard text="http://vendor/phpunit/phpunit/module/web/list?id=123&amp;table=some_table&amp;GET%5BclipBoard%5D=1">
+        <typo3-copy-to-clipboard text="http://example.com/typo3/module/web/list?id=123&amp;table=some_table&amp;GET%5BclipBoard%5D=1">
             <button type="button" class="dropdown-item btn btn-link">
                 <span class="t3js-icon icon icon-size-small icon-state-default icon-actions-link" data-identifier="actions-link">
 	                <span class="icon-markup">
diff --git a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/SpecialRouteIdentifierWithArgumentsCopyToClipboard.html b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/SpecialRouteIdentifierWithArgumentsCopyToClipboard.html
index 27c6ecd1b8099a3182731d79908045423338a7e4..ff32f3005326b4d0885f37ea633c8481bf4f3935 100644
--- a/typo3/sysext/backend/Tests/Functional/Template/Fixtures/SpecialRouteIdentifierWithArgumentsCopyToClipboard.html
+++ b/typo3/sysext/backend/Tests/Functional/Template/Fixtures/SpecialRouteIdentifierWithArgumentsCopyToClipboard.html
@@ -25,7 +25,7 @@
         </button>
     </li>
     <li>
-        <typo3-copy-to-clipboard text="http://vendor/phpunit/phpunit/record/edit?id=123&amp;edit%5Bpages%5D%5B123%5D=edit&amp;edit%5BoverrideVals%5D%5Bpages%5D%5Bsys_language_uid%5D=1">
+        <typo3-copy-to-clipboard text="http://example.com/typo3/record/edit?id=123&amp;edit%5Bpages%5D%5B123%5D=edit&amp;edit%5BoverrideVals%5D%5Bpages%5D%5Bsys_language_uid%5D=1">
             <button type="button" class="dropdown-item btn btn-link">
                 <span class="t3js-icon icon icon-size-small icon-state-default icon-actions-link" data-identifier="actions-link">
 	                <span class="icon-markup">
diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php
index 3c9d1a439fb0867f4752ac98e045dfd4e1de2d24..fe527fb26a8ece5881dd41e99e31f32ab7bcc924 100644
--- a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php
+++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php
@@ -23,6 +23,7 @@ use Psr\Http\Message\ServerRequestInterface;
 use TYPO3\CMS\Backend\Routing\Route;
 use TYPO3\CMS\Backend\Routing\Router;
 use TYPO3\CMS\Backend\Routing\UriBuilder as BackendUriBuilder;
+use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\Http\ServerRequest;
 use TYPO3\CMS\Core\Http\Uri;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -48,6 +49,11 @@ class UriBuilderTest extends UnitTestCase
      */
     protected $resetSingletonInstances = true;
 
+    /**
+     * @var bool Restore Environment after tests
+     */
+    protected $backupEnvironment = true;
+
     /**
      * @var ConfigurationManagerInterface
      */
@@ -368,8 +374,35 @@ class UriBuilderTest extends UnitTestCase
     /**
      * @test
      */
-    public function buildBackendUriCreatesAbsoluteUrisIfSpecified(): void
+    public function buildBackendUriCreatesAbsoluteUrisInFrontendContentIfSpecified(): void
+    {
+        $GLOBALS['TYPO3_REQUEST'] = $this->getRequestWithRouteAttribute();
+        $_SERVER['HTTP_HOST'] = 'baseuri';
+        $_SERVER['SCRIPT_NAME'] = '/index.php';
+        $_SERVER['ORIG_SCRIPT_NAME'] = '/index.php';
+        $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
+        $this->uriBuilder->setCreateAbsoluteUri(true);
+        $expectedResult = 'http://baseuri/' . TYPO3_mainDir . 'test/Path?token=dummyToken';
+        $actualResult = $this->uriBuilder->buildBackendUri();
+        self::assertSame($expectedResult, $actualResult);
+    }
+
+    /**
+     * @test
+     */
+    public function buildBackendUriCreatesAbsoluteUrisInBackendContentIfSpecified(): void
     {
+        Environment::initialize(
+            Environment::getContext(),
+            true,
+            false,
+            Environment::getProjectPath(),
+            Environment::getPublicPath(),
+            Environment::getVarPath(),
+            Environment::getConfigPath(),
+            Environment::getBackendPath() . '/index.php',
+            Environment::isWindows() ? 'WINDOWS' : 'UNIX'
+        );
         $GLOBALS['TYPO3_REQUEST'] = $this->getRequestWithRouteAttribute();
         $_SERVER['HTTP_HOST'] = 'baseuri';
         $_SERVER['SCRIPT_NAME'] = '/typo3/index.php';