Одно решение, которое я придумал, заключается в использовании перенаправления javascript сразу после отображения кода отслеживания, но на тот случай, если присутствует параметр pk_campaign. Поэтому я помещаю код отслеживания в раздел <head>
страницы и сразу после этого:
<script type="text/javascript">
if (location.search.indexOf('pk_campaign=')>=0)
{
document.location.href=location.protocol + '//' + location.host + location.pathname;
}
</script>
Кажется, это работает, но медленнее, чем перенаправление через .htaccess или PHP. Кроме того, это заставляет меня размещать код отслеживания в <head>
и загружать его перед основным содержимым страницы.
Другой вариант может быть в PHP и htaccess. Например, первое перенаправление на скрипт подсчета (count.php), если URL-адрес содержит параметр pk_campaign (в .htaccess), примерно так:
RewriteCond %{QUERY_STRING} pk_campaign
RewriteRule ^ /count.php?url=http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Затем в count.php что-то вроде следующего с использованием функций управления выводом PHP для избежать ошибок заголовка:
<?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( );
?>
Я действительно не пробовал это, хотя. Каким-то образом нам пришлось бы «сообщить» Piwik URL исходной страницы, а не той, на которой находится код отслеживания.
person
yan
schedule
02.05.2014