Клуб Яндекс.Поиска для сайта

Проблемы с выводом запроса

После обновления кода поискового блока возникла проблема. Человек заполняет форму поиска, нажимает enter. Страница перегружается, результаты выводятся, но в поле поиска вместо исходного запроса отображается он же, но закодированный (например, %D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D1%81). В чем может быть проблема?

П.С. Пока пришлось вернуть назад и использовать старый код

6 комментариев
Дмитрий Вульбрун
28 января 2016, 00:58

А какой именно блок вы меняли? код формы или код результатов?

Я все заменила. (Я изменила настройки и мне написали "замените код формы", соответственно, я весь код и заменила)

Дмитрий Вульбрун
28 января 2016, 00:58

У вас установлен очень странный 301-й редирект с документов сайта на тот же адрес. Зачем он нужен, я не понимаю. Адрес, на который производится редирект, точно такой же, как адрес, с которого производится редирект. Видимо, это какая-то ошибка.

При редиректе просто сервер еще раз энкодит кирилицу в запросе, и получается, что в запросе дважды заэнкоженный текст. А в строке поиска - посто заэнкоженный текст.

Следует убрать такой редирект (может быть это правило mod_rewrite в .htaccess), либо добавить там параметр, который запрещает энкодинг при режиректе. Насколько я помню, это опция "NE".

Но возникает вопрос, почему раньше работало (со старым кодом), а с новым - нет (старый код все так же работает)

Дмитрий Вульбрун
28 января 2016, 00:58

Потому что у вас в старом коде адрес сокращен до относительного /search/. Если лень разбираться с редиректами, в новом коде тоже поставьте этот адрес в параметре action.

 

Поняла, это я не везде поменяла домен, как оказалось.

Спасибо за помощь