*/ class RedirectListener { public function __construct( protected RedirectMatcher $matcher, protected RedirectBuilder $builder, protected RedirectRepositoryQuery $repository ) { } public function onKernelException(ExceptionEvent $event) { $request = $event->getRequest(); if (!$event->getThrowable() instanceof NotFoundHttpException) { return; } $redirects = $this->repository ->orderBy('.sortOrder') ->where('.isEnabled=true') ->find() ; foreach ($redirects as $redirect) { if ($this->matcher->match($redirect, $event->getRequest()->getUri())) { $event->setResponse($this->builder->buildResponse($redirect, $event->getRequest())); } } } }