Произвольные URL в Facet Друпал 8

Главные вкладки

Аватар пользователя real-man real-man 21 февраля 2020 в 12:18

В друпал 8 на странице с фасетным поиском если в URL добавить произвольные значения, то вернется не 404 страница, а список всех результатов текущей страницы search api .

Например, есть выбранный фильтр Facet который имеет адрес /products/category/passatizhi-1003, если к нему добавить /products/category/passatizhi-1003/fjfjf, или даже /products/category/paалала то 404 страницы не будет.
Проблема актуальна для любого варианта формирования URL (Taxonomy term name + id, по умолчанию или Node title + id) а также с включенным или выключенным prety path

Настройка поведения при отсутствии результатов в VIEWS не помогает.
В 7ке проблема решалась установкой Views 404, но в 8ке проблему уже на уровне Facet а не Views.

У кого какие мысли есть как побороть проблему?

Комментарии

Аватар пользователя marassa marassa 21 февраля 2020 в 15:53

С фасетами не знаком, но в общем случае проблему негодных параметров в адресе view можно пробовать решить через настройку validation criteria для существующих фильтров и добавления фильтра Global: Null для отсечения лишних параметров.
Вот по этой ссылке довольно подробно об этом: https://drupal.stackexchange.com/questions/48093/how-do-i-set-my-views-t...

Аватар пользователя marassa marassa 21 февраля 2020 в 17:18

По-другому в смысле фасетов или в смысле views? Я пишу именно про 8ку. Но если там фасеты не на views, тогда другое дело.

Аватар пользователя real-man real-man 26 февраля 2020 в 10:26

Там фасеты отделили от Views и они создаются теперь в Конфигурациях - > поиск и метаданные, а уже там выбираем в "Facet source" нужную нам View. Они с одной стороны и зависимы, но с другой Facet по какой-то своей логике управляет урлами и выводом списков. Контекстными фильтрами как не пытался настроить, все не работает. При этом если создать просто View поискового индекса но без фасетов, такой проблемы не существует.

Аватар пользователя real-man real-man 26 февраля 2020 в 12:34

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

Аватар пользователя bumble bumble 26 февраля 2020 в 12:40

Как на счет попробовать решить это с т.з. SEO-специалиста? (надеюсь ник не по приколу выбран) И использовать общепринятые средства, вроде метатегов (каноникал, в частности) и настройки доступа для роботов (роботс.тхт)? Ну, или заняться выявлением тех самых причин попадания таких "мусорных" страниц пс'ам?

Аватар пользователя real-man real-man 26 февраля 2020 в 12:51

Я с точки зрения SEO и подхожу к вопросу так как разработчикам зачастую все равно на такие "ветрянные мельницы".
1. Canonical не настроить стандартными методами друпал так как за каноникал и показывает мусорную страницу. Нужно кодить модуль Metatag или писать функцию в темплейт темы.
2. Как вы закроете эти страницы в robots не закрыв при этом нормальные ?
3. Занялся, причин не нашел, может подскажите?

Ну и вообще мне конечно нравится такой подход в решении задач, мол если кодер проблемы не видит то это и не проблема, пусть SEO думает как закрыть эти косяки))).

Аватар пользователя real-man real-man 26 февраля 2020 в 15:31

И что? Это как-то отвечает на вопрос темы? Я pretty path ведь ставлю на фасеты не для того, чтобы потом эти ссылки в nofollow прятать.