src/Event/SeoRequestSubscriber.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Event;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\HttpKernel\KernelEvents;
  6. class SeoRequestSubscriber  implements EventSubscriberInterface
  7. {
  8.     public function onKernelRequest(RequestEvent $event)
  9.     {
  10.         $request $event->getRequest();
  11.         $uri $request->getRequestUri();
  12.         $host $request->getSchemeAndHttpHost();
  13.         if ($uri !== '/' && trim($uri'/')  === '') {
  14.             header("Location: {$host}"true301);
  15.             exit();
  16.         }
  17.         if (str_starts_with($uri'/index.php')) {
  18.             $new '/' ltrim(str_replace('/index.php'''$uri), '/');
  19.             header("Location: {$host}{$new}"true301);
  20.             exit();
  21.         }
  22.         $httpCache $request->server->get('HTTP_IF_MODIFIED_SINCE''');
  23.         if ($httpCache && time() + 3600 strtotime($httpCache)) {
  24.             header($request->server->get('SERVER_PROTOCOL') . ' 304 Not Modified');
  25.             exit();
  26.         }
  27.     }
  28.     public static function getSubscribedEvents(): array
  29.     {
  30.         return [
  31.             KernelEvents::REQUEST => 'onKernelRequest',
  32.         ];
  33.     }
  34. }