Как сделать обратное преобразование символов в URL?

В системе Яндекс.Директ есть возможность передавать адрес страниц через параметр {param1} (ссылка).

Например, я хочу из одного и того же объявления с первого ключевого слова отправлять на эту страницу — http://site.ru/category/proteiny/?brand=56, со второго ключевого слова на эту — http://site.ru/category/geynery/?brand=56.

Чтобы это сделать я прописываю в {param1} для каждого ключевого слова следующие значения:

  1. протеин rps — proteiny/?brand=56
  2. гейнер rps — geynery/?brand=56

А для всего объявления делаю ссылку такого вида — http://site.ru/category/{param1}. В результате подстановки, кто будет искать протеин попадет на страницу с протеинами, а кто гейнер — на страницу с гейнерами.

Но проблема в том, что специальные символы в значениях {param1} автоматически кодируются в UTF-8 на стороне Яндекса и поэтому символ слеша преобразовывается в последовательность «%2F». В итоге ссылки выглядят так:

  1. site.ru/category/proteiny%2F?brand=56
  2. site.ru/category/geynery%2F?brand=56

И сервер логично отдает 404 ошибку. Кто знает, как решить эту проблему?

Тех. поддержка сказала, что в магазине обратное преобразование таких символов не предусмотрено и предложила задать этот вопрос здесь.

2 ответа

  • 2
    Максим 6 июня 2017 12:15 #

    Попробуйте использовать плагин: https://www.shop-script.ru/help/5627/301-redirect-...

    В самом простом варианте это будет что-то такое:

    proteiny%2F?* → proteiny/?*

    • +1
      ivladmir ivladmir 9 июня 2017 05:23 #

      Спасибо за ответ. Создал правило, но пока не работает. Отписал на странице плагина.

Добавить ответ

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