cestpasdur.com Tutoriaux et ressources du web

15mar/090

Feedburner, rediriger vos flux avec .htaccess

Feedburner, rediriger vos flux avec .htaccess

feedburner 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 :

  • thunderbird,
  • netvibes
  • igoogle
  • 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.

    Commentaires (0) Trackbacks (0)

    Aucun commentaire pour l'instant


    Laisser un commentaire


    Aucun trackbacks pour l'instant