Квадратные скобки в URL

123 4
F
На сайте с 02.12.2015
Offline
52
1670

Здравствуйте!

На сайте есть страницы фильтров с квадратными скобками такого вида:

https://site.com/category/?filter[selected][16][0]=554

В открытом коде квадратные скобки заменены на %5d и %5b , то есть URL имеет такой вид:

Однако в Google Search Console появилось много ошибок в отчете "Ошибка переадресации" - http://i.prntscr.com/AvFJ1a7QRF2udknrPZfhCQ.png

Есть теория, что:

1. Поисковый бот видит в урлах спецсимволы "%5b" / "%5d" и понимает, что это квадратные кавычки, но интерпретирует их как "%5B" и "%5D" (то есть в верхнем регистре) и пытается перейти по ним.

2. Срабатывает редирект верхнего регистра на нижний.

3. Поисковый бот снова интерпретирует спецсимволы в верхний регистр.

4. Снова срабатывает редирект.

Так и происходит зацикливание редиректа, из-за которого возникла ошибка сканирования страниц фильтров.

Подскажите, пожалуйста, возможно у кого-то уже была подобная проблема? Или, возможно, кто-то знает имеет ли значение нижний/верхний регистр в спецсимволах квадратных кавычек? 

Заранее спасибо!

http://derevo-kazok.org/ - сказки для всей семьи! https://discover.in.ua - познавательный интернет-журнал!
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1
Реальные примеры урлов в студию вместе с сайтом. Никто тут в угадайку играть не хочет.
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Антоний Казанский
На сайте с 12.04.2007
Offline
617
#2

Странно, что у вас спецсимволы передаются как данные. Спецсимволы - это элемент оформления (если я правильно понял заявленный пример).

Страницы фильтров должны формироваться через параметры, в параметры - заносить значение выбранных пользовательских данных. Не используйте в URL мусор. Должно быть примерно так,

/list?filter=одно_значение%дополнительное_значение%еще_значение

Словом, кодов элементов оформления в URL быть не должно, иначе оформление сменили - URL не совпадают, в результаты будут многочисленные дубли.

√ SEO продвижение https://akazansky.ru - экспертный аудит сайтов ( https://akazansky.ru/audit-sajtov ), внедрение эффективных решений цифрового маркетинга. Обучение автоматизации с помощью Zennoposter https://goo-gl.me/6Zypu
SeVlad
На сайте с 03.11.2008
Offline
1609
#3
Fantazerwm :
Есть теория, что:

Дурацкая теория.

А вот сама конструкция

filter[selected][16][0]=554

выглядит... как минимум странно. Есть вариант что движок не правильно работает.
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4

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

ТС, какая CMS так делает или самопис?

богоносец
На сайте с 30.01.2007
Offline
753
#5
SeVlad #:

filter[selected][16][0]=554

выглядит... как минимум странно.

Ещё один неправильный бутерброд  

А иногда как бы правильное преобразование символов урла приводило к странным последствиям.

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
Ну тут скобки (и пр. срань) в значениях параметра. Хрень конечно, но понятная. А вот скобки в названии параметра - это какой-то ппц.
W1
На сайте с 22.01.2021
Offline
284
#7
Fantazerwm :
имеет ли значение нижний/верхний регистр

Не имеет.

Мой форум - https://webinfo.guru –Там я всегда на связи
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#8
SeVlad #:
Ну тут скобки (и пр. срань) в значениях параметра. Хрень конечно, но понятная. А вот скобки в названии параметра - это какой-то ппц.

Не вижу ничего такого, обычный массив передаётся.

SeVlad
На сайте с 03.11.2008
Offline
1609
#9
LEOnidUKG #:

Не вижу ничего такого, обычный массив передаётся.

Какой массив в имени параметра? Кинь ман про такие конструкции в Query_string.
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#10
SeVlad #:
Какой массив в имени параметра? Кинь ман про такие конструкции в Query_string.

<?php

$filter=$_GET['filter'];

print_r($filter);

Вывод:

Array
(
[selected] => Array
(
[16] => Array
(
[0] => 554
)

)

)


т.е. PHP умеет напрямую в код такой массив считывать.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий