#техничка И снова про роботс
#техничка
И снова про роботс
Столкнулся тут на днях с такой задачкой
Есть сайт и у него страницы пагинации такого типа
/accessories?page=2
и есть мусорные страницы сортировки
/accessories?page=1&sort=p.price&order=ASC
Собственно задача простая
- разрешить страницы пагинации к индексации
- запретить страницы сортировки
Имеем в роботс 2 такие строчки
Diallow: /*?* запрещает все страницы с get параметрами
и
Allow: /*?page=* разрешает индексацию страниц пагинаций
Казалось бы просто добавляем
Disallow: /*order=*
и тем самым запрещаем страницы сортировки
но это не сработало...
а вот такая строка
Disallow: /*&order=* сработала
Если кто не заметил, то добавился всего 1 символ & (амперсанд).
Тут я завис. Ведь, как известно, * обозначает любой символ, в том числе и &
Так почему же Disallow: /*order=* не работает
а Disallow: /*&order=* работает?
Найти решение помогла поддержка Я.Вебмастера за что им большое спасибо, далее цитата
"На ситуацию, возникающую при добавлении символа & в правило, влияет один нюанс: директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от меньшего к большему). В директиве Disallow: /*order=* меньше символов, чем в директиве Allow: /*?page=*, поэтому приоритет остается за директивой Allow, а если добавить символ &, то у директивы Disallow будет больше символов. Если удалить директиву Allow, то запрет вида Disallow: /*order=* тоже будет работать."
Вот такая вот простая и красивая отгадка.
Если 2 директивы противоречат друг друга, одна разрешает, а другая запрещает, то приоритет отдается той, у которой больше длина префикса URL.
Как говорится век живи - век учись)
Источник новости https://t.me/dgnzru/1035...