Feedburner, rediriger vos flux avec .htaccess
Feedburner, rediriger vos flux avec .htaccess
Si comme moi vous avez navigué entre une dizaine de CMS, et proposé à vos utilisateurs des flux RSS avec des URL diverses et variées, vous vous retrouvez alors avec des utilisateurs qui suivent votre flux RSS avec google Reader, Netvibes ou bien leur propre butineur perso.
Seulement maintenant, vous souhaitez, à la fois économiser la bande passante consommée par les X bots, tout en utilisant les statistiques assez fournies mises à disposition par l’application de google : feedburner.
.htaccess, c’est quoi ?
Le fichier .htaccess est une solution simple pour rediriger l’utilisateur vers d’autres pages ou demander à ce que l’internaute soit authentifié.
La première étape est d’identifier si l’utilisateur courant est ou non feedburner.
Afin de lister les différents types de user agent butinant mes flux RSS, je fais via ma console préférée (celle de macos)
Auditer ses logs
cat access_log | grep feed
Vous obtiendrez donc quelque chose du style :
... [15/Mar/2009:01:19:08 +0100] "GET /feed.php HTTP/1.0" 404 180 "-" "Netvibes (http://www.netvibes.com/; 9 subscribers; feedId: 5309207)" ... [15/Mar/2009:11:55:44 +0100] "GET /feed HTTP/1.1" 301 213 "-" "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 20 subscribers; feed-id=5711376032720528433)" ... [15/Mar/2009:11:49:18 +0100] "GET /spip.php?page=backend&id_rubrique=1 HTTP/1.1" 200 23490 "-" "Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=13943281175051610867)" ... [15/Mar/2009:09:00:32 +0100] "GET /feed HTTP/1.1" 301 213 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20090105 Lightning/0.9 Thunderbird/2.0.0.19" ... [15/Mar/2009:07:58:50 +0100] "GET /feed HTTP/1.0" 301 213 "-" "FeedBurner/1.0 (http://www.FeedBurner.com)" ...
Comme vous pouvez le voir, les outils pour suivre les flux sont assez nombreux :
Gregarius (connait pas, celui là)
Règles de redirection (RewriteCond)
Maintenant que nous avons identifié les personnes à rediriger, nous allons pouvoir transformer cela en règle, grâce à notre fichier .htaccess en écrivant des conditions de redirection RewriteCond
Rediriger les users agents différents de feedburner :
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
Règle de réécriture (RewriteRule)
Cela n’est pas suffisant, car dans ce cas, toutes nos urls seront redirigées. Il faut maintenant appliquer quelques restrictions :
Après avoir lister les urls à rediriger, cela donne :
... RewriteRule ^feed.php$ http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [R=301] RewriteRule ^feed$ http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [R=301,L] RewriteRule ^spip.php?page=backend$ http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [R=301,L] ...
Tester les redirections
Deux méthodes :
Avec firefox en utilisant le plugin User Agent Switcher
Avec wget pour les utilisateurs par defaut sur les feed
wget http://www.cestpasdur.com/feed
Le serveur nous retourne :
--12:46:01-- http://www.cestpasdur.com/feed
=> `feed'
Résolution de www.cestpasdur.com... 88.191.80.17
Connexion vers www.cestpasdur.com|88.191.80.17|:80... connecté.
requête HTTP transmise, en attente de la réponse... 301 Moved Permanently
Emplacement: http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [suivant]
--12:46:01-- http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb
=> `CestpasdurcomTutoriauxEtRessourcesDuWeb'
Résolution de feeds2.feedburner.com... 74.125.43.118
Connexion vers feeds2.feedburner.com|74.125.43.118|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: non spécifié [text/xml]
Vérifions maintenant que feedburner, lui, ne sera pas redirigé :
wget --user-agent=FeedBurner wget --user-agent=FeedBurner http://www.cestpasdur.com/spip.php?page=backend
Le retour :
--12:54:54-- http://www.cestpasdur.com/spip.php?page=backend
=> `spip.php?page=backend.2'
Résolution de www.cestpasdur.com... 88.191.80.17
Connexion vers www.cestpasdur.com|88.191.80.17|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: non spécifié [text/xml]
Code http de la réponse 200, c’est ok
Règles au complet
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^feed$ http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [R=301,L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteCond %{QUERY_STRING} page=backend
RewriteCond %{QUERY_STRING} !id_rubrique
RewriteRule ^spip.php$ http://feeds2.feedburner.com/CestpasdurcomTutoriauxEtRessourcesDuWeb [R=301,L]
Conclusion
Nombreux sont les CMS php vous permettant de gérer votre contenu, l’utilisation d’un fichier htaccess fonctionnera cependant avec tous. Faites attention cependant aux url qui peuvent être différentes selon le CMS utilisé. Soyez également vigilants en surveillant de prêt vos fichiers de logs après la mise en place des règles, car l’erreur est humaine.
Autre avantage, après le rachat de feeburner par google, il est possible de monétiser ses flux RSS, la manipulation précédente vous permet de mieux diffuser ces publicités.
Il vous faudra ensuite être patient car les statistiques feedburner ne seront mises à jour que le lendemain.
Aucun trackbacks pour l'instant