---
title: "Deprecation: #109548 - GeneralUtility::locationHeaderUrl() without PSR-7 request"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-109548-1775851081"
source: "Changelog/14.3/Deprecation-109548-GeneralUtilityLocationHeaderUrlWithoutRequest.rst"
typo3-version: "14.3"
typo3-major: 14
type: "deprecation"
issue: 109548
forge: "https://forge.typo3.org/issues/109548"
tags: ["PHP-API", "FullyScanned", "ext:core"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #109548 - GeneralUtility::locationHeaderUrl() without PSR-7 request {#deprecation-109548-1775851081}

See [forge#109548](https://forge.typo3.org/issues/109548)

## Description {#description}

Calling `\TYPO3\CMS\Core\Utility\GeneralUtility::locationHeaderUrl()` without
providing a PSR-7 `\Psr\Http\Message\ServerRequestInterface` as the second argument is deprecated.

The method previously resolved the current host and request directory via
`\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv()`, which
hides an implicit dependency on server globals. The method signature has been
extended to accept an explicit PSR-7 request object, which should be passed instead.

## Impact {#impact}

A PHP `E_USER_DEPRECATED` error is triggered when
`\TYPO3\CMS\Core\Utility\GeneralUtility::locationHeaderUrl()` is called
without a `ServerRequestInterface` argument.

## Affected installations {#affected-installations}

All installations that call
`\TYPO3\CMS\Core\Utility\GeneralUtility::locationHeaderUrl()` without
passing `ServerRequestInterface` as the second argument.

The extension scanner will detect affected usages as a strong match.

## Migration {#migration}

Pass the current PSR-7 request as the second argument to
`\TYPO3\CMS\Core\Utility\GeneralUtility::locationHeaderUrl()`.

```diff
use TYPO3\CMS\Core\Utility\GeneralUtility;
+ use Psr\Http\Message\ServerRequestInterface;

- $url = GeneralUtility::locationHeaderUrl($path);
+ $url = GeneralUtility::locationHeaderUrl($path, $request);
```

The PSR-7 request is available in various places, for example as an argument
in controller actions, via `$GLOBALS['TYPO3_REQUEST']` in legacy contexts,
and via `ServerRequestInterface` method parameters.
