Merge branch 'hotfix/ep-track-fix'

This commit is contained in:
Björn Fromme
2021-09-08 11:49:50 +02:00
@@ -35,6 +35,7 @@ use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
use TYPO3\CMS\Core\Exception\SiteNotFoundException;
use TYPO3\CMS\Core\Http\NormalizedParams; use TYPO3\CMS\Core\Http\NormalizedParams;
use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\CMS\Core\Http\RedirectResponse;
use TYPO3\CMS\Core\Site\SiteFinder; use TYPO3\CMS\Core\Site\SiteFinder;
@@ -107,9 +108,24 @@ class TrackingMiddleware implements MiddlewareInterface
$targetPage = $redirect['target_page_uid']; $targetPage = $redirect['target_page_uid'];
$responseCode = $redirect['response_code']; $responseCode = $redirect['response_code'];
// Fallback for old t3:// links
if (1 === preg_match('/^t3:\/\/page\?uid=(\d+)$/', $targetPage, $matches)) {
$targetPage = $matches[1];
}
// Skip redirecting of non-numeric page uids like full urls
if (false === is_numeric($targetPage)) {
return null;
}
/** @var SiteFinder $siteFinder */ /** @var SiteFinder $siteFinder */
$siteFinder = GeneralUtility::makeInstance(SiteFinder::class); $siteFinder = GeneralUtility::makeInstance(SiteFinder::class);
$site = $siteFinder->getSiteByPageId($targetPage); try {
$site = $siteFinder->getSiteByPageId((int)$targetPage);
}
catch (SiteNotFoundException $exception) {
return null;
}
$params = []; $params = [];