Перейти к содержанию

Рекомендуемые сообщения

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

В Директе настроена ссылка сайт/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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Exploits сказал:

где {param1} заменяется на ссылку keramicheskaya-plitka/kollekcii-plitki/dlya-vannoy

 

просто не надо так делать. не используйте / в param

или используйте несколько param

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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 можно было бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну это что-то ненормальное, у вас получается пробел перед урлом, в htaccess тогда 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте такую штуку добавить в htaccess 

AllowEncodedSlashes On

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, spectre сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.