diff --git a/src/ContaoManager/Plugin.php b/src/ContaoManager/Plugin.php index 38af635..4690f90 100644 --- a/src/ContaoManager/Plugin.php +++ b/src/ContaoManager/Plugin.php @@ -26,7 +26,7 @@ public function getBundles(ParserInterface $parser): array public function getRouteCollection(LoaderResolverInterface $resolver, KernelInterface $kernel) { - $routes = __DIR__ . '/../Resources/config/routes.yaml'; + $routes = __DIR__ . '/../Resources/config/routing.yaml'; return $resolver->resolve($routes)->load($routes); } diff --git a/src/Controller/RedirectController.php b/src/Controller/RedirectController.php index 01d3635..df845f6 100644 --- a/src/Controller/RedirectController.php +++ b/src/Controller/RedirectController.php @@ -12,19 +12,18 @@ use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\RouterInterface; class RedirectController { - public function __invoke(Request $request, ContaoFramework $framework): Response + public function __invoke(Request $request, ContaoFramework $framework, RouterInterface $router): Response { // required for REQUEST_TOKEN to be defined $framework->initialize(); + $url = $router->generate('contao_backend'); if ($srcQuery = $request->getQueryString()) { - $targetQuery = str_replace('/redirect', '', Backend::addToUrl($srcQuery)); - $url = '/' . StringUtil::ampersand($targetQuery, false); - } else { - $url = '/contao'; + $url = StringUtil::ampersand(str_replace($request->getPathInfo(), $url, '/' . Backend::addToUrl($srcQuery)), false); } return new RedirectResponse($url); diff --git a/src/Resources/config/routes.yaml b/src/Resources/config/_definition.yaml similarity index 66% rename from src/Resources/config/routes.yaml rename to src/Resources/config/_definition.yaml index ce59457..8752850 100644 --- a/src/Resources/config/routes.yaml +++ b/src/Resources/config/_definition.yaml @@ -1,3 +1,5 @@ ameotoko_backend_redirect: - path: /contao/redirect + path: / controller: Ameotoko\BackendRedirect\Controller\RedirectController + defaults: + _scope: backend diff --git a/src/Resources/config/routing.yaml b/src/Resources/config/routing.yaml new file mode 100644 index 0000000..9206d65 --- /dev/null +++ b/src/Resources/config/routing.yaml @@ -0,0 +1,5 @@ +_ameotoko_backend_redirect: + resource: './_definition.yaml' + prefix: /contao/redirect + trailing_slash_on_root: false +