diff --git a/Classes/Middleware/RedirectionMiddleware.php b/Classes/Middleware/RedirectionMiddleware.php index 337fa94..a0dcd56 100644 --- a/Classes/Middleware/RedirectionMiddleware.php +++ b/Classes/Middleware/RedirectionMiddleware.php @@ -44,6 +44,19 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface */ $cookieName = 'site-language-preference'; + /** @var Site $site */ + $site = $request->getAttribute('site'); + + /** + * Do not redirect if site language redirection is disabled for a site + */ + if ( + !empty($site->getConfiguration()['SiteLanguageRedirectionDisable']) && + $site->getConfiguration()['SiteLanguageRedirectionDisable'] + ) { + return $handler->handle($request); + } + /** * Do not redirect search engine bots. */ @@ -61,8 +74,6 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface return $response; } - /** @var Site $site */ - $site = $request->getAttribute('site'); // Set default method in case site configuration isn't yet updated. $method = $site->getConfiguration()['SiteLanguageRedirectionMethod'] ?? self::REDIRECT_METHOD_BROWSER; diff --git a/Configuration/SiteConfiguration/Overrides/sites.php b/Configuration/SiteConfiguration/Overrides/sites.php index 76c44ec..3bac4b8 100644 --- a/Configuration/SiteConfiguration/Overrides/sites.php +++ b/Configuration/SiteConfiguration/Overrides/sites.php @@ -14,4 +14,14 @@ ], ]; -$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] = $GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] . ',--div--;Site Language Redirection,SiteLanguageRedirectionMethod'; +$GLOBALS['SiteConfiguration']['site']['columns']['SiteLanguageRedirectionDisable'] = [ + 'label' => 'Disable Redirect', + 'description' => 'Disable the language redirect for this site.', + 'config' => [ + 'type' => 'check', + 'renderType' => 'checkboxToggle', + 'default' => 0, + ], +]; + +$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] = $GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] . ',--div--;Site Language Redirection,SiteLanguageRedirectionDisable,SiteLanguageRedirectionMethod';