Come reindirizzare una pagina rimuovendo il tracciamento di Google Analytics

February 24th, 2009 at 4:11 pm • permalink5 comments

Screenshot Google AnalyticsDa qualche giorno i principali motori di ricerca hanno siglato un accordo introducendo il canonical link tag nel tentativo di trovare una possibile soluzione al fenomeno delle pagine con multiple URL.

Una delle situazioni più comuni che rientrano in questo caso è rappresentata dalle pagine oggetto di campagne online. Il canonical link è un compromesso molto recente e supportato solo da un ristretto numero di motori di ricerca. Nell’incertezza, qualcuno preferisce ancora ricorrere al buon vecchio metodo dell’URL rewrite e del redirect.

Questa mattina mi ha citofonato Francesco, intento a risolvere proprio questa situazione. Tutto nasce dal problema che non è possibile utilizzare mod_alias per impostare un redirect basato su un parametro in querystring. Per approfondimenti vi rimando all’articolo Apache .htaccess query string redirects.

Per la gioia di chi non ama gli indovinelli, ecco la soluzione al problema.

Il codice seguente è una regola di riscrittura di Apache. Può essere inserita direttamente nel file di configurazione del virtual host o all’interno dell’.htaccess. Nel caso la querystring contenga un parametro di Google Analytics per il tracciamento di una campagna, esegue il reindirizzamento alla pagina a se stessa rimuovendo la querystring.

RewriteEngine On
RewriteCond %{QUERY_STRING} utm_source=(.*?)   [OR]
RewriteCond %{QUERY_STRING} utm_medium=(.*?)   [OR]
RewriteCond %{QUERY_STRING} utm_content=(.*?)  [OR]
RewriteCond %{QUERY_STRING} utm_campaign=(.*?)
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1? [R=301,L]

Se desiderate eseguire la riscrittura forzata per una pagina specifica o un gruppo di pagine, è sufficiente aggiungere una condizione sulla pagina richiesta. L’esempio seguente applica il redirect solo nel caso in cui i parametri si trovino sulla query string della homepage.

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} utm_source=(.*?)   [OR]
RewriteCond %{QUERY_STRING} utm_medium=(.*?)   [OR]
RewriteCond %{QUERY_STRING} utm_content=(.*?)  [OR]
RewriteCond %{QUERY_STRING} utm_campaign=(.*?)
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1? [R=301,L]

Altre soluzioni o suggerimenti sono ben accetti. Segretamente, Francesco mi ha confessato che alla soluzione migliore regalerà un viaggio premio in Brasile per assistere al Carnevale di Rio.

Filed in Analytics • Tags: , , ,


  • http://www.yoyoformazione.it/2007/03/francesco_de_francesco.php Fradefra

    Ottimo, vado a scrivere il mio post in cui spiego perché stavo facendo tutto ciò e grazie per aver risolto il problema tecnico :)

  • http://www.goanalytics.info Marco Cilia

    poiché Apache interviene PRIMA del codice javascript della pagina, stiamo parlando di NON tracciare le campagne, piuttosto che di tracciarle correttamente ma non far comparire l’url, giusto? :)

  • http://www.yoyoformazione.it/2007/03/francesco_de_francesco.php Fradefra

    Esatto, Marco. Dato che quelle informazioni non mi interessano più, ho chiesto a Simone come impostare un redirect per non perdermi i Link.

  • http://www.goanalytics.info Marco Cilia

    allora ok. Aspetto di sapere il perché :)

  • paolo

    come posso risolvere l’errore 302 e 502

Follow Me
    Random Quote