Если страница views с раскрытыми фильтрами, то нет 404.

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

Аватар пользователя drup-user drup-user 23 июня 2018 в 22:13

Здравствуйте. Если страница views с раскрытыми фильтрами, то нет 404.

Пример:
Обычная нода (существующая) /node/43 - статус 200к.

Если попытаться зайти на эту ноду вот так: /node/43_любой_текст_или_символ/ - то будет 404

НО если эта нода с раскрытым фильтром views, то при заходе на /node/43_любой текст_или_символ/ не будет 404, а будет /node/43 и фильтр не сработает как бы.

Как сделать, чтобы при URL _любой_неправильный_текст_или_символ/ была ошика 404? На странице с фильтром views.

Комментарии

Аватар пользователя drup-user drup-user 24 июня 2018 в 16:45

Здравствуйте.
Просто так выразился чтоб легче объяснить.

Фильтр views на странице views.

Пример: views вытаскивает поля, делая товары на example_site.com/psu
Во views есть несколько раскрытых фильтров. Они работают как положено.
Но если на такой странице сделать опечатку в URL example_site.com/psu/m или example_site.com/psu/sgfsgczxdbb
то 404 ошибка не выскакивает.

А показывается example_site.com/psu с версткой, как для карточки товара. Потому что в карточке товара я сделал чтобы были видны сайдбары.

Пробла вот в чем: эта страница example_site.com/psu/sgfsgczxdbb с несуществующей подпапкой /sgfsgczxdb и Друпал применяет к ней верстку от карточки товара.

я бы мог просто в блоках указать, чтобы не было сайдбаров вот так
Блоки-показывать на всех страницах, кроме перечисленных - psu/*
Но для карточек товара psu сайдбары нужны, а в общей странице /psu не нужны. Поэтому так было сделано.

А запрос с опечаткой ломает верстку, странно что не показывает 404.

Аватар пользователя bumble bumble 24 июня 2018 в 17:00

Ничего странного. Если страница "/psu" - вьюха, то страница "psu/sgfsgczxdbb" - вьюха с аргументом (читать та же вьюха / страница).

Верстку "ломает" не запрос с опечаткой, а не правильно настроенная логика вывода блоков.

В конце-концов, можно настроить нужное поведение представления с помощью контекстных фильтров.

Представления должны делать выборку, а не решать куда переадресовать пользователя.

Аватар пользователя Phantom63rus Phantom63rus 25 июня 2018 в 1:40

Вы не совсем верно понимаете логику views. В данном случае у вас есть представление, в котором используется контекстный фильтр, т.е. "afssdfsfsd" из адреса. Очевидно, что такого параметра не существует, поэтому представление выводит то что вы указали выводить при несуществующем параметре. В случаях подобным вашему обычно пишут "такого товара не найдено".

А ещё я набрал вопрос в гугле и первой же ссылкой получил вот такой ответ: https://drupalfly.ru/station/return-page-404-in-views - мне такое решение не нра, но работать будет.

P.S. ИМХО логика работы сайта должна исключать попадание пользователя на несуществующие урлы.