Views. При создании представления - помни о контекстных фильтрах, даже если их нет.

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

Аватар пользователя 6RUN0 6RUN0 7 ноября 2013 в 13:02

Внимание !!!
Дабы щас все не ринулись, сломя голову, править вьюхи на рабочих сайтах, предупреждаю - делать это очень очень очень не рекомендую, ибо можно просесть в поисковой выдачи.

При создании простого многостраничного представления без контекстных фильтров всегда добавляйте контекстный фильтр "Глобальный: Ноль" с проставленными галочками в следующих чекбоксах:

  • Отобразить все результаты для указанного поля
  • Пропустить аргумент по умолчанию для URL представления
  • Провалить проверку, если будет получен любой аргумент

Это касается страничных вьюх, блоковые вьюхи обрабатываются нормально.

А баг или это такая фича в том, что если представление находится по адресу /test-pager и постраничный навигатор ведёт соответственно на адреса /test-pager?page=(\d+) (для тех кто не привык к регулярным выражениям, объясняю "\d" - любое число от 0 до 9, "+" значит этих количество чисел может быть от 1 до бесконесности, а скобочки убирайте в уме, они тут больше для визуально-смылового эффекта), то GET запрос по адресу /test-pager/(.+)?page=(\d+) (и опять для тех кто не привык к регулярным выражениям, объясняю "." - любой символ, а про "+" уже знаете) даст ответ 200 ОК, т.е. у вас на сайте будет бесконечное количество дублей и решается "эта фича", как описанно выше, добавлением контекстного фильтра.

Если это баг и он есть на баг трекере d.org модуля view то, прошу прощения за своё знание английского языка, не смог подобрать нужные слова и прошу дать сслылку на него в комментариях.

Пример вьюхи для импорта

Тестировал с версиями 7.x-3.7 и 7.x-3.x-dev

Комментарии

Аватар пользователя 6RUN0 6RUN0 7 ноября 2013 в 17:25

Koreychenko wrote:
поисковик будет сам придумывать эти ссылки? Не парьтесь вы уже.....

неправильная ссылка в ноде на вьюху по ошибке редактора, и всё - поисковик пошёл индексить вьюху с новыми адресами, т.к. адреса у постраничного навигатора меняются на /test-pager/(.+)?page=(\d+)
ну например два раза написали http://example.com/test-pager/(.+)?page=(\d+)http://example.com/test-pager/(.+)?page=(\d+) и этот урл попал под шаблон /test-pager/(.+)?page=(\d+) Smile

Аватар пользователя sg85 sg85 7 ноября 2013 в 17:07

"Koreychenko" wrote:
И что? Вы думаете поисковик будет сам придумывать эти ссылки? Не парьтесь вы уже.....

Будет, но только в 2х случаях
1 где-то указана ссылка на сайт с адресом www.yoursite.com/node/1/blablabla(необязательно views)
2 раньше было 30 страниц, они попали в индекс, а затем со временем по удалялся материал и их осталось 10

А теперь самое веселое, если по 2му пункту будет возврат 404, то Вы всего лишь засрете себе друпаловский журнал логов, ибо тот же гугл(и не только) будет туда ломиться как ни в чем не бывало даже в случае 404 ошибки, при этом из аналитики будут приходить гневные письма(лечится, например, заявкой на удаление из индекса).

Но, чтобы ответить, что из этих 2х зол лучше, нужен сеошник.

Аватар пользователя sg85 sg85 7 ноября 2013 в 17:28

Да ерунда все это, можно так же засунуть неиспользуемую переменную, например http://www.youtube.com/?somearg=13, что уже даст дубликат главной страницы ютуба, так что, в данном случае, это должно быть головной болью поисковиков.

Аватар пользователя k_dmitry k_dmitry 7 ноября 2013 в 17:55

"sg85" wrote:
нужен сеошник.

disallow: /*?* и нет проблем

и гугл не индексирует 404, если страница закрыта в роботсе
и можно настроить друпал что 404 будет всегда по одному адресу, а не по 100500 вариантам

Аватар пользователя sg85 sg85 7 ноября 2013 в 18:05

c disallow проходит нормально, только что делать, если страниц со временем опять стало 30?
404 не индексирует, однако, если когда-то вместо 404 было 200, либо где-то на стороннем ресурсе есть ссылка на несуществующую страницу, то будет долбить до позеленения, и тут можно либо закрыть с помощью disallow, либо подать заявку на удаление из индекса(нельзя удалить из индекса страницу, дающую ответ 200(500 и прочие "глюки" сервера так же не могут быть причиной для исключения из индекса) и доступную в robots.txt, вот разве что тут 404 ответ может пригодиться).

"k_dmitry" wrote:
и можно настроить друпал что 404 будет всегда по одному адресу, а не по 100500 вариантам

смысл?

Аватар пользователя k_dmitry k_dmitry 7 ноября 2013 в 18:24

"sg85" wrote:
на стороннем ресурсе есть ссылка на несуществующую страницу, то будет долбить до позеленения,

"sg85" wrote:
смысл?

например есть сто ссылок на сто страниц сайта, у которых статус 404, можно все сто закрыть в роботсе или в вебтулс, но как быть с другими поисковиками? с яху, с бингом, мэилру и т.д.? а если есть одна страница которая отдает 404, ее закрываем в роботсе, и при переходе с тех ста ссылок, будет одна страница закрытая в роботсе, вот в чем смысл.

Аватар пользователя 6RUN0 6RUN0 7 ноября 2013 в 21:42

ИМХО - такое поведение вьювс не приемлемо !!!
если с подошью pathauto у ноды генерится путь /test-pager/любая-очень-очень-человекопонятная-и-короткая-ссылка, то по адресу /test-pager/любая-очень-очень-человекопонятная-и-короткая-ссылка?page=(\d+) уже будет вьювс, а не нода, отсюдова так же вытекает геморой с отображением боков, приходится проверочку через php писать.
С отображением страниц таксономии такой фигни же нет.