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

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

mahonova-marya
20 ноября 2013, 16:19

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

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

6 комментариев
Подписаться на комментарии к посту
Вульбрун Дмитрий
20 ноября 2013, 16:20

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

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

Вульбрун Дмитрий
20 ноября 2013, 16:34

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

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

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

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

Вульбрун Дмитрий
20 ноября 2013, 18:05

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

 

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

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