Переадресация на основной домен в Drupal

Данный подход скорее полезен как демонстрация инструментария, чем действительно реализация редиректа на основной домен. Потому что лучше это делать средствами сервера, а не ПО, чтобы уменьшить нагрузку на сервер.

Drupal 8 работает на базе симфонии, а та реализует т.н. очередь событий ядра, которые возникают в течении процесса обработки запроса (request).

Во 2й версии Symfony доступны следующие события ядра:

  • KernelEvents::CONTROLLER — Возникает, когда найден контроллер для обработки запроса
  • KernelEvents::EXCEPTION — …, когда случается EXCEPTION, у которого нет обработки.
  • KernelEvents::FINISH_REQUEST — …, когда ответ на запрос уже сформирован и готов к отправке.
  • KernelEvents::REQUEST — … в самом начале получения запроса.
  • KernelEvents::RESPONSE — … сразу после создания ответа на запрос.
  • KernelEvents::TERMINATE — … как только ответ был отправлен.
  • KernelEvents::VIEW — …, если возвращаемое значение контроллера не является экземпляром Response.

Нам нужно зацепиться за KernelEvents::REQUEST, чтобы сформировать требуемый редирект. Реализуется это через создание подписки на события.

В исходниках вашего модуля (/src) добавьте следующий класс src/EventSubscriber.php:

Мало букафф? Читайте есчо !

Добавление своих suggestion в Drupal 9/10

Май 2, 2023 г.

Для добавления suggestions требуется использовать соответствующий группе шаблонов hook. Если название шаблона не известно, то его можно подсмотреть в режиме ...

Читать

Attempting to re-run cron while it is already running.

Июнь 3, 2025 г.

Попытка запустить cron параллельно с запущенным кроном не увенчается успехом, так как Drupal использует блокировку. Но иногда, из-за ошибок во время исполнения, блокировка не снимается. Что делать, если блокировка не была снята штатно? На самом ...

Читать

Программное создание статьи с переводом в Drupal

Август 10, 2023 г.

Допустим, вы получаете следующие данные - заголовок, текст статьи, и теги. При этом данные поставляются на двух языках - 'ru' и 'en'. Вам требуется программно сохранить статью и её перевод. Я полагаю, что уже активирован модуль Content Translation, ...

Читать

Как полностью удалить поле в Drupal, если оно «зависло» в хранилище полей

Сентябрь 5, 2025 г.

Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации ...

Читать
 

Комментарии к «Переадресация на основной домен в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: