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

Аватар пользователя seonomad seonomad 21 февраля в 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 февраля в 15:53

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

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

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

Аватар пользователя seonomad seonomad 26 февраля в 10:26

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

Аватар пользователя seonomad seonomad 26 февраля в 12:34

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

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

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

Аватар пользователя seonomad seonomad 26 февраля в 12:51

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

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

Аватар пользователя gun_dose gun_dose 26 февраля в 15:23

В семёрке на фасетных ссылках по умолчанию висел rel=nofollow. В восьмёрке тоже.

Аватар пользователя seonomad seonomad 26 февраля в 15:31

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