如果访问了指定的活动URL,则php标头立即重定向

如果访问了指定的活动URL,则php标头立即重定向,php,Php,我可能担心的太多了,但事情是这样的 我已经建立了谷歌分析活动跟踪网址使用 这很好,但我有20个不同的跟踪URL,还有更多 这些url真的很难看,我不喜欢访问者在第一次访问我的网站时看到这个长跟踪url 这就是我的想法/理论,我想放在我的wordpress网站上。如果有人愿意帮助编写php部分,我将非常感激。如果这个主意不好的话,你也可以给我一些建议 例如,这些只是我的一些URL 我想立即重定向所有上述网址太 在my header.php或functions.php中使用php 是否

我可能担心的太多了,但事情是这样的

我已经建立了谷歌分析活动跟踪网址使用

这很好,但我有20个不同的跟踪URL,还有更多

这些url真的很难看,我不喜欢访问者在第一次访问我的网站时看到这个长跟踪url


这就是我的想法/理论,我想放在我的wordpress网站上。如果有人愿意帮助编写php部分,我将非常感激。如果这个主意不好的话,你也可以给我一些建议


例如,这些只是我的一些URL

我想立即重定向所有上述网址太

在my header.php或functions.php中使用php


是否有一些方法可以编写,这样我就可以简单地在数组/案例中添加新的跟踪URL

任何建议都将非常感谢


请不要这样笑,但我猜这就是我想做的

$landing = $_SERVER['REQUEST_URI'];

$campaigns = array(
"http://example.com/?utm_source=Company&utm_medium=MPU&utm_campaign=Promo",
"http://example.com/?utm_source=Company&utm_medium=Leaderboard&utm_campaign=Promo",
"http://example.com/?utm_source=Company&utm_medium=Take%2BOver&utm_campaign=Promo"
);

if ( $campaigns == $landing ) {

header( 'Location: http://example.com/' ) ;

}

删除查询字符串的简单方法:

if ($urlIsTracker) {
   list($url) = explode('?', $_SERVER['REQUEST_URI']);
   header("Location: $url", true, 301);
   exit;
}

你不应该那样做

谷歌分析跟踪代码是客户端的。这是一段js代码,在加载页面后执行。如果它没有找到utm_*查询参数,则不会向ga发送任何内容,因此您将在那里看到的统计数据将不可读。最有可能的是,您将在ga ui中看到总计

如果你想做的话

$trackingParams = array('utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term');
$queryParams = array();
parse_str($_SERVER['QUERY_STRING'], $queryParams);
if (count(array_intersect($queryParams, $trackingParams)) > 1) {
    // This url has tracking params
    foreach ($trackingParams as $paramName) {
        unset($queryParams[$paramName]);
    }
    // You can use a regex, but i wouldn't recommend it
    $newUrl = str_replace(
        $_SERVER['QUERY_STRING'],
        http_build_query($queryParams),
        $_SERVER['REQUEST_URI']
    );
    header('Location: ' . $newUrl, true, 301);
    exit;
}
这是一段代码,它将在当前url中搜索utm_*参数,并重定向到一个不带这些参数的url,而保留其他查询参数不变。

试试这个

这是加载页面后从url中清除utm_参数的纯javascript

function clear_utm_from_url(){
     var currentLocation = window.location.search.replace(/\?/g, '').split('&');
     var new_url = new Array();

     for( i = 0; i < currentLocation.length; i++){
         var q = currentLocation[i].split('=');
         if( q[0].search("utm_") ){
             new_url.push(currentLocation[i]);
         }
     }
     if( new_url.length > 0 ){
         new_url = "?"+new_url.join("&");   
     }else{
         new_url = "";
     }

     history.pushState({}, "", window.location.pathname+new_url);  
 }
函数从url()清除{
var currentLocation=window.location.search.replace(/\?/g',).split('&');
var new_url=new Array();
对于(i=0;i0){
新建url=“?”+新建url.join(“&”);
}否则{
新_url=“”;
}
history.pushState({},“,window.location.pathname+new_url);
}
并添加类似的内容或其他内容来运行函数

<body onload="clear_utm_from_url();">


Man off-course,因此我页面底部的脚本与url栏中的内容相连接-因此,如果我直接重定向,那么我将丢失所有活动统计数据非常感谢您抽出时间编写此脚本。在您指出如果我在php标题中执行重定向,它将不会计算我的活动点击数后,我决定反对它。虽然这个脚本在将来对我来说会很有用,但我确信它可以用于其他事情。谢谢