modules/custom/your_module/your_module.services.yml
services:
  your_module.event_subscriber:
    class: Drupal\your_module\EventSubscriber\YourModuleSubscriber
    tags:
      - {name: event_subscriber}
modules/custom/your_module/src/EventSubscriber/Your_moduleSubscriber.php
<?php
namespace Drupal\your_module\EventSubscriber;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class YourModuleSubscriber implements EventSubscriberInterface {
  public function checkForRedirection(GetResponseEvent $event) {
    // 参考)一部の例外を除いて匿名ユーザーはloginページに飛ばす
    if (\Drupal::currentUser()->isAnonymous()) {
      if (!preg_match('!^(/user/|/sended-onetime-link-mail)!', $_SERVER['REQUEST_URI'])) {
        $path = \Drupal\Core\Url::fromUserInput('/user/login');
        $response = new RedirectResponse($path->toString());
        $response->send();
      }
    }
  }
  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() {
    $events[KernelEvents::REQUEST][] = array('checkForRedirection');
    return $events;
  }
}
                    
コメント
動的キャッシュ再生成時に越させたい場合は 優先度 > 27
パーマリンク Submitted by actbrain on 2018/04/02 11:05.
動的キャッシュ再生成時に来させたい場合は 優先度 > 27 にする。
$events[KernelEvents::REQUEST][] = ['checkForRedirection', 30];何が何でも毎回来させたい場合は 優先度 > 200 にする。
$events[KernelEvents::REQUEST][] = ['checkForRedirection', 280];ページ