Sfoglia il codice sorgente

fix bug where redirects were not handled when ot_website does not exist

Olivier Massot 4 anni fa
parent
commit
c2d59fd74b

+ 3 - 5
ot_core/Classes/Middleware/Frontend/OtSiteResolver.php

@@ -42,11 +42,9 @@ class OtSiteResolver extends \TYPO3\CMS\Frontend\Middleware\SiteResolver
                 $tail = rtrim($request->getUri()->getPath(), '/');
             }
         } catch (NoSuchWebsiteException $e) {
-            return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
-                $request,
-                'The requested website does not exist',
-                ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
-            );
+            // site not found
+            // either it will be redirected, or it will return a pageNotFound error during the page resolution
+            return $handler->handle($request);
         }
 
         $routeResult = new SiteRouteResult($request->getUri(), $site, $language, $tail);

+ 8 - 0
ot_optimizer/Classes/Middleware/Frontend/OtPageResolver.php

@@ -43,6 +43,14 @@ class OtPageResolver extends \TYPO3\CMS\Frontend\Middleware\PageResolver
         $website = $GLOBALS['TYPO3_REQUEST']->getAttribute('ot_website');
         $params = $request->getQueryParams();
 
+        if (!$website['uid'] > 0) {
+            return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
+                $request,
+                'The requested website does not exist',
+                ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
+            );
+        }
+
         $pageUid = $otWebsiteRepository->matchUriToPage($website, $request->getUri(), $devMode);
         if (!$pageUid > 0) {
             return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(