src/EventSubscriber/NormalizeUrlSubscriber.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class NormalizeUrlSubscriber implements EventSubscriberInterface
  8. {
  9.     public function onKernelRequest(RequestEvent $event)
  10.     {
  11.         $request $event->getRequest();
  12.         $uri $request->getRequestUri();
  13.         $normalizedUri preg_replace('#/+#''/'$uri);
  14.         if ($uri !== $normalizedUri) {
  15.             $event->setResponse(
  16.                 new RedirectResponse(
  17.                     $normalizedUri,
  18.                     Response::HTTP_MOVED_PERMANENTLY
  19.                 )
  20.             );
  21.         }
  22.     }
  23.     public static function getSubscribedEvents()
  24.     {
  25.         return [
  26.             'kernel.request' => 'onKernelRequest',
  27.         ];
  28.     }
  29. }