Проблема

Покажу на примере моего сайта. С помощью представления и моделя Views у меня настроена страница с портфолио: https://tambaum.ru/portfolio

Если в конце URL дописать любые несуществующие символы
(например, https://tambaum.ru/portfolio/blablabla),
то Drupal отобразит эту страницу с кодом 200 и покажет содержимое https://tambaum.ru/portfolio

Таким образом создается дублирование контента, что нехорошо.

Решение

Заходим в настройки представления "Портфолио" и добавляем контекстный фильтр "Содержимое: Тип":

Для блока "КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ПРИСУТСТВУЕТ В URL ИЛИ ПРЕДОСТАВЛЯЕТСЯ ПО УМОЛЧАНИЮ" устанавливаем галку "Укажите критерии проверки" и в выпадающем меню "Проверка" выбираем "Содержимое", как показано на скриншоте:

Проверяем результат, заходим по ссылке https://tambaum.ru/portfolio и убеждаемся, что выдается 404 ошибка.

Кстати, настроить внешний вид 404 ошибки можно следующим образом:

  1. Создаете Обычную страницу с заголовоком "404 ошибка — страница не найдена"
  2. Копируете URL этой страницы
  3. Заходите в раздел "Информация о сайте" /admin/config/system/site-information
  4. В блоке "Страницы ошибок" указываете URL вашей 404 ошибки
Короткий заголовок: 
Drupal не выдает 404 ошибку
Тэги статей: