Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Замена %2F на /


Recommended Posts

Ребят, дилема.

В Директе настроена ссылка сайт/keramicheskaya-plitka/kollekcii-plitki/dlya-vannoy?utm_source=yandex&utm_med... и т.д.

Проблема в том что Яша кодирует слеши в %2F

Цитата

Специальные символы в значениях параметров {param1} и {param2} автоматически кодируются в UTF-8. Например, если в качестве параметра {param1} использовать «flowers/lilac.html», символ «/» будет преобразован в последовательность «%2F», и объявление будет вести на страницу http://www.site.ru/flowers%2Flilac.html.

 

И при переходе по ссылке сайт/keramicheskaya-plitka%2Fkollekcii-plitki%2Fdlya-vannoy?utm_source=yandex&utm_med... выдает 404 ошибку. Причем не 404 от движка, а вот такая http://prntscr.com/j9rjcy 

Кто-то с таким сталкивался? И какие есть идеи решения проблемы?

Надіслати
Поділитися на інших сайтах

У вас что-то не так, htaccess наверное убитый

 

слеши не в урле кодируются а в гет-параметрах

Надіслати
Поділитися на інших сайтах

23 минуты назад, spectre сказал:

У вас что-то не так, htaccess наверное убитый

 

слеши не в урле кодируются а в гет-параметрах

Нет, если бы гет парметры - это без проблем сделать, а вот в Директе идет site.com/{param1}?get=...

где {param1} заменяется на ссылку keramicheskaya-plitka/kollekcii-plitki/dlya-vannoy а в этой ссылке все слеши заменяются на %2F

и получается что это не get параметр с %2F, а идет как ссылка, и вот голову ломаю как сделать что бы перейдя по ссылке site.com/keramicheskaya-plitka%2Fkollekcii-plitki%2Fdlya-vannoy открывалась страница site.com/keramicheskaya-plitka/kollekcii-plitki/dlya-vannoy

Туплю очень сильно т.к. не могу понять что надо сделать.

Надіслати
Поділитися на інших сайтах

1 минуту назад, nikifalex сказал:

странная ссылка. без указания домена. а дальше цитата идет уже даже не про ссылку, а про {param} вы нас где-то хотите запутать

Нет.

Ссылка работает:

https://smartceramica.ru/keramicheskaya-plitka/kollekcii-plitki/dlya-vannoy

Не работает:

https://smartceramica.ru/keramicheskaya-plitka%2Fkollekcii-plitki%2Fdlya-vannoy

Именно эту ссылку с %2F keramicheskaya-plitka%2Fkollekcii-plitki%2Fdlya-vannoy и генерирует директ

 

Надіслати
Поділитися на інших сайтах

Или просто яндексу отдайте последнюю часть урла для ванной, опенкарт сам перекинет куда надо, с маркетом такое прокатывает, с директом тоже должно 

Змінено користувачем spectre
  • +1 2
Надіслати
Поділитися на інших сайтах

5 минут назад, spectre сказал:

Или просто яндексу отдайте последнюю часть урла для ванной, опенкарт сам перекинет куда надо, с маркетом такое прокатывает, с директом тоже должно 

Кстати, мысль! если сеопро - он перекинет 301 на нужную страницу. Надо будет попробовать.

---UPD---

Редирект не работает, хотя сеопро. Буду разбираться.

А все же если полную ссылку - есть какие-то идеи как это можно сделать?

Надіслати
Поділитися на інших сайтах

34 минуты назад, Exploits сказал:

- есть какие-то идеи как это можно сделать?

это у вас судя по всему вообще параметр фильтра

а почему это в урл не писать? или просто тупо в индексе заменить %2f на / и перейти куда надо

 

типа такого, костыль конечно :)

		$link = HTTP_SERVER.$_SERVER['REQUEST_URI'];
		$original_link = $link;

		$link = str_replace('%2F', '/', $link);

		if($link != $original_link){
			header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $link), true, 301);
			exit();
		}

 

Змінено користувачем spectre
Надіслати
Поділитися на інших сайтах

3 минуты назад, spectre сказал:

это у вас судя по всему вообще параметр фильтра

а почему это в урл не писать? или просто тупо в индексе заменить %2f на / и перейти куда надо

 

типа такого, костыль конечно :)


		$link = HTTP_SERVER.$_SERVER['REQUEST_URI'];
		$original_link = $link;

		$link = str_replace('%2F', '/', $link);

		if($link != $original_link){
			header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $link), true, 301);
			exit();
		}

 

Нет, это ссылка на категорию, которую прописывают в Я.Директе, а там слеши меняются на %2f

Я бы в index это сделал, но перейдя по такой ссылке не работает index.php -  то есть туда делаешь print_r($_SERVER); ничего не отображается, просто ошибка, не понятно конечно. Если бы доходило до index -  то сделать 301 можно было бы.

Надіслати
Поділитися на інших сайтах

Не хочет. Я думаю что вариант с отдачей последней части url и будет решением проблемы.

Теперь надо разобраться почему не работает редирект.

Надіслати
Поділитися на інших сайтах

17 минут назад, spectre сказал:

Ну может директива не работает, добавить в конфиг апача можно 

спасибо, напишу в поддержку

Надіслати
Поділитися на інших сайтах

  • 2 years later...
  • 1 month later...

Всем доброго времени суток! Так же, как и в рассмотренном выше случае, только в одном товаре при просмотре из каталога в админке "-" меняется на "%2F" и в следствии этого выдает 404. При переходе на эту страницу товара в браузере, все норм. Что это может быть?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.