Описание проблемы

На сайте при переходе по URL с номером несуществующей страницы пагинации (например, страница 10 при общем количестве страниц 7) отображается содержимое существующей страницы (страница 1 вместо 404 ошибки). Это связано с некорректной настройкой контекстных фильтров в Drupal 10.

Задача

  • Настроить контекстные фильтры для вида (View), отвечающего за пагинацию, так, чтобы при превышении допустимого номера страницы возвращался ответ 404 (NotFound).
  • Убедиться, что передача параметров пагинации из URL в контекстные фильтры работает корректно и не приводит к лже-совпадениям (когда смежный материал или страница по умолчанию подменяют неизвестный запрос).
  • Протестировать граничные случаи: нулевая страница, отрицательная страница, страница с id, не соответствующим ни одной записи.

Требования к реализации

  • Использовать механизм контекстных фильтров Drupal 10 (Views Contextual Filters), можно с заменой обработчика по умолчанию на кастомный или встроенный для возврата 404.
  • Код не должен конфликтовать с другими модулями и пагинацией на сайте (Pager, Pathauto, Metatag и т.д.).
  • При невалидном параметре (отрицательное число, буквы, слишком большая страница) - показывать стандартную 404 страницу Drupal.
  • Реализация должна быть на чистом Drupal API, без дополнительных сторонних модулей, кроме входящих в ядро (проверьте конфигурацию кеширования).

Что должно получиться на выходе

Ссылка вида /some-view?page=99 (или /some-view/99, если используется Path Based пагинация) возвращает 404, а не страницу /some-view с произвольным содержимым.

Разработка одностраничного сайта с каталогом на английском языке

Требуется создать лендинг с каталогом продукции для американской аудитории. Необходимо адаптировать контент с существующего русскоязычного сайта, расставить призывы к действию и кнопки для заказа или консультации.