Рейтинг:1

Как я могу настроить страницу 403 для определенных маршрутов?

флаг br

На сайте D9 с существующей пользовательской веткой 403 страницы. Меня попросили показать другое переменное сообщение из «стандартного» для нескольких конкретных маршрутов.

я пробовал с theme_preprocess_page__403(&$переменные) но я не мог определить исходный маршрут.

Например. с использованием \Drupal::routeMatch()->getRouteName() я получил система.403 вместо имени маршрута мне нужно проверить. Я проверил решения, чтобы найти реферальный маршрут, но ни одно из них не сработало.

На самом деле два маршрута, которым нужен этот конкретный 403, создаются программно с *маршрутизация.yml и относительный контроллер в пользовательском модуле.

Интересно, можно ли как-то указать путь перенаправления, если маршрут требования терпит неудачу. Я не нашел никакой документации, но это был бы другой способ реализовать это требование.

Рейтинг:5
флаг cn

Страница с ошибкой 403 не является перенаправлением, поэтому реферера нет. Он отображается в подзапросе, который по умолчанию использует маршрут система.403.

Изнутри подзапроса вы можете получить имя маршрута исходного запроса с помощью

\Drupal::routeMatch()->getMasterRouteMatch()->getRouteName()

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.