Une solution que j'ai trouvée consiste à utiliser une redirection javascript juste après l'affichage du code de suivi, mais juste au cas où le paramètre pk_campaign est présent. Donc, je mets le code de suivi dans la section <head>
de la page et juste après:
<script type="text/javascript">
if (location.search.indexOf('pk_campaign=')>=0)
{
document.location.href=location.protocol + '//' + location.host + location.pathname;
}
</script>
Cela semble fonctionner, mais est plus lent que d'une redirection par PHP .htaccess oder. En outre, il me force à placer le code de suivi dans le <head>
et le charger avant le contenu principal de la page.
Une autre option pourrait être PHP et htaccess. Par exemple la première redirection vers un script de comptage (count.php) dans le cas où l'URL contient le paramètre pk_campaign (en .htaccess), quelque chose comme ceci:
RewriteCond %{QUERY_STRING} pk_campaign
RewriteRule^/count.php?url=http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Puis, en quelque chose comme count.php le suivant à l'aide PHP Output Control functions à éviter les erreurs d'en-tête:
<?php
ob_start();
?>
<!-- Piwik tracking code here -->
<?php
if (isset($_GET['pk_campaign'])) {
ob_end_clean();
header('Location: ' . preg_replace('/\?.*$/', '', $_SERVER["REQUEST_URI"]));
exit;
}
ob_end_flush();
?>
Je n'ai pas vraiment essayé cela, cependant. D'une manière ou d'une autre, nous devions "dire" à Piwik l'URL de la page d'origine, pas celle du code de suivi.