reecriture d'url pour Pluxml

Suite à mon article Rewrite rules Nginx, je me suis penché, sur la ré-écriture d'urls, pour mon blog qui fonctionne avec l'excellent moteur de Blog / CMS Pluxml. Cela devrait soigner mon Search Engine Optimization !

pluxml

Pluxml que j'utilise pour ce blog, est un outil léger, puissant, qui propose depuis longtemps la fonction de réécriture d'url ... Mais, avec Apache. Or j'utilise Nginx.

Cyril LEVIS avait proposé sur le wiki de Pluxml, une configuration de Nginx, qui permet de gérer cet url rewriting pour Pluxml. j'avoue que j'ai mis un peu de temps à comprendre ce que ça faisait.

if (!-f $request_filename){
        set $rule_0 1$rule_0;
   }
   if (!-d $request_filename){
        set $rule_0 2$rule_0;
   }
   if ($request_filename !~ "-l"){
        set $rule_0 3$rule_0;
   }
   if ($rule_0 = "321"){
        rewrite /([feed\/].*)$ /index.php? last;
   }
   rewrite /feed\/(.*)$ /feed.php? last;
  • la ligne !-f : test si la requête est un fichier existant
  • la ligne !-d : test si la requête est un répertoire existant
  • la ligne -l : test si la requête est un lien symbolique existant

Or en consultant la documentation de Nginx, j'ai vu qu'il existait un moyen de factoriser l'ensemble grâce au flag -e, qui réalise les 3 tests d'un coup.

if (-f $request_filename) {
  break;
}
if (!-e $request_filename) {
  rewrite ^/([^feed\/].*)$ /index.php?$1 last;
  rewrite /feed\/(.*)$     /feed.php?$1  last;
  break;
}

Ainsi, finit mes affreux urls avec plein de index.php dedans ! Un meilleur référencement Google, qui me signale sans cesse dans les Google webmaster tools, que j'ai des urls en double qui pointent le même contenu : ce qui n'ai pas bon du tout en terme de SEO !

Je tiens encore à remercier Cyril LEVIS, pour ses réponses.