L’injection de Google Analytics sans modifier les fichiers

Déjà diffusé le 23 août 2011 @ 18 h 20 min

On vient de vous confier un site internet aux pages nombreuses et vous voulez injecter sur chacune votre code Google Analytics sans avoir à les éditer une à une ; voici la solution d’injection via le fichier .htaccess

Le fichier .htaccess va nous permettre d’exécuter des directives Apache . Ces directives écrites dans le fichier .htaccess vont permettre de travailler sur le niveau du répertoire et sur tous les niveaux d’en dessous d’eux, jusqu’à ce qu’un autre . htaccess déclare quelque chose de différent.

Nous travaillerons travailler avec les directive AddHandler , php_value , auto_prepend_file et auto_append_file .

.htaccess

Options +Includes
AddHandler server-parsed .html
AddHandler application/x-httpd-php .html
php_value auto_prepend_file /home/userdir/public_html/ga-1.php
php_value auto_append_file /home/userdir/public_html/ga.php

Ces cinq lignes nous permettent d’insérer du code sans avoir à modifier aucun des fichiers

Options+ Includes

Active l’option INCLUDES coté serveur

AddHandler server-parsed .html

Permet de viser les fichiers ayant une certaines extension (ici HTML)

AddHandler application/x-httpd-php .html

Permet interpréter les fichiers HTML par le gestionnaire (handler) PHP (étape cruciale)

php_value auto_prepend_file /home/userdir/public_html/ga-1.php
php_value auto_append_file /home/userdir/public_html/ga.php

Cela doit être fait lorsque PHP est exécuté comme un module Apache

Passons maintenant à l’écriture du script Google analytics

ga-1.php

<?php
function google_analytics($buffer) {
 $ga = <<<END
 <script type="text/javascript">
 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js'; type='text/javascript'%3E%3C/script%3E"));
 </script>
 <script type="text/javascript">
 try {
 var pageTracker = _gat._getTracker("GOOGLE_TRACKING_CODE_GOES_HERE");
 pageTracker._trackPageview();
 } catch(err) {}</script>
 END;
return str_ireplace("</body>", "{$ga}</body>", $buffer);
}
 ob_start("google_analytics");
?>

ga.php

<?php
ob_end_flush();
?>

A ne pas négliger car la fonction ob_end_flush arrête les script et l’envoie au client

Librement traduit de Injecting Google Analytics Without Changing Files

 

Mots clefs de l'article :

Aucun commentaire

Laissez un commentaire !

Catégories

Autres articles sur le blog