Я использую функцию для перенаправления внешних ссылок на моем сайте
Как работает эта функция: — она обнаружит все ссылки рядом сbuy.com и применит правило перенаправления, а затем перенаправит его.
Например: — nearbuy.com является доменом, поэтому эта функция добавляет префикс перед внешним URL-адресом nearbuy.com, т.е. http://tracking.nearbuy.com/aff_c?offer_id=9&aff_id = 479&URL =
затем http://www.nearbuy.com и параметр URL, чтобы заставить его работать.
Что я хочу сделать:-
1) Если на ссылке nearbuy.com уже есть «?» тогда это будет использовать&»
2) Если у ссылки nearbuy.com нет знака «?» тогда он будет использовать «?»
Что проблема:-
Я использую метод ниже, но его не обнаруживает «?» в ссылках и добавьте «?» снова в конце ссылок во время перенаправления, которое является проблемой
Вот код: —
if(stripos($url, "nearbuy.com")) {
$url_args = parse_url($url);
$url_params = "?utm_source=nap&utm_medium=cps&utm_campaign={affiliate_id}";
if(!empty($durl["query"])) {
$url_params = "&utm_source=nap&utm_medium=cps&utm_campaign={affiliate_id}";
}
$redirect_url = "http://tracking.nearbuy.com/aff_c?offer_id=9&aff_id=479&url=" . urlencode($url . $url_params);
goto redirect_to_uri;
break;
}
Вы могли бы использовать parse_url
и сделать что-то вроде:
$yourQueryParams = [
'offer_id' => 9,
'aff_id' => 479,
];
$url .= (parse_url($url, PHP_URL_QUERY) ? '&' : '?') . http_build_query($yourQueryParams);
// redirect with your query params
header("Location: $url");
die();
Других решений пока нет …