Проблема
Покажу на примере моего сайта. С помощью представления и моделя Views у меня настроена страница с портфолио: https://tambaum.ru/portfolio
Если в конце URL дописать любые несуществующие символы
(например, https://tambaum.ru/portfolio/blablabla),
то Drupal отобразит эту страницу с кодом 200 и покажет содержимое https://tambaum.ru/portfolio
Таким образом создается дублирование контента, что нехорошо.
Решение
Заходим в настройки представления "Портфолио" и добавляем контекстный фильтр "Содержимое: Тип":
Для блока "КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ПРИСУТСТВУЕТ В URL ИЛИ ПРЕДОСТАВЛЯЕТСЯ ПО УМОЛЧАНИЮ" устанавливаем галку "Укажите критерии проверки" и в выпадающем меню "Проверка" выбираем "Содержимое", как показано на скриншоте:
Проверяем результат, заходим по ссылке https://tambaum.ru/portfolio и убеждаемся, что выдается 404 ошибка.
Кстати, настроить внешний вид 404 ошибки можно следующим образом:
- Создаете Обычную страницу с заголовоком "404 ошибка — страница не найдена"
- Копируете URL этой страницы
- Заходите в раздел "Информация о сайте" /admin/config/system/site-information
- В блоке "Страницы ошибок" указываете URL вашей 404 ошибки