如何检测"?"在站点链接重定向?

时间:2016-10-12 11:02:56

标签: php redirect affiliate

我在我的网站中使用函数重定向外部链接

此功能如何工作: - 它将检测所有nearbuy.com链接并应用重定向规则,然后重定向。

例如: - nearbuy.com是一个域名所以此函数在nearbuy.com外部url之前添加前缀,即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;
}

1 个答案:

答案 0 :(得分:0)

您可以使用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();