Проблема в том, что мой сайт перенаправляет на многие другие сайты. Таким образом, перенаправление работает следующим образом: пользователь нажимает на ссылку, он перенаправляется на другую страницу на моем веб-сайте, которая регистрирует щелчок, целевой веб-адрес и не тратит время и т. Д., Помещает его в базу данных и перенаправляет пользователя на Его или ее предполагаемое место назначения, эта маленькая остановка настолько коротка, что не замечается пользователем.
Однако, если целевой веб-сайт имеет значения GET, он не будет работать, поскольку сам адрес веб-сайта назначения является значением GET при передаче между главной страницей и «средней страницей», где хранятся данные. Так что, если мой сайт, например, называется example.com, а конечный сайт называется destination.com?articleid=12674
, это будет выглядеть так.
example.com -> example.com/middlepage?exampleget=2&websitelink=destination.com?category=whatever&articleid=12674 ->
$_GET['websitelink'] = destination.com?category=whatever
$_GET['articleid'] = 12674
$_GET['websitelink']
должно быть равно destination.com?category=whatever&articleid=12674
но..
$_GET['websitelink'] = destination.com?category=whatever
$_GET['articleid'] = 12674
Идентификатор статьи 12674 должен был быть частью предназначенного веб-сайта, но из-за того, что для него задано значение GET, мой сайт считает, что это обычное значение GET, которое не является частью предназначенного веб-сайта. И поэтому никто из пользователей не попадает в нужную статью.
Есть ли хорошие функции PHP для решения этой проблемы? Это может дать конкретному GET больший приоритет или какие-то другие функции, чтобы компьютер мог разделить эти значения GET?
Вы должны кодировать или использовать значения замены для таких случаев и декодировать их обратно на промежуточную страницу, непосредственно перед тем, как произойдет перенаправление.
Итак, вы можете заменить ?
а также &
в URL с вашими собственными представлениями о них (независимо от того, что не будет мешающим и легко декодируемым), или используйте их представление в формате HTML.
Как сказал @bwoebi в комментариях, UrlEncode () может быть самый простой способ пойти.
Других решений пока нет …