Nginx : Passer de Dotclear à WordPress sans perdre son référencement

Comme je l’ai expliqué dans mon précédent billet, je suis en train de basculer fourre-tout de Dotclear ancienne version vers un wordpress tout neuf.

Evidemment, il n’est pas question de perdre le référencement des pages sur les moteurs de recherche.

Le gros soucis, c’est que Nginx – la bombe à venir pour faire tourner les pages – est super galère à configurer pour les redirections.

Aussi, après avoir fouillé ça et là, je suis tombé sur le site de webinterdit[1]

Il est expliqué une petite combine pour rediriger sans se faire chier avec le htaccess, le grrrmmpf de nginx ou que sais-je encore. Juste du PHP inside wordpress.

Bilan, j’ai pu passer d’une structure d’url :

/index.php/2010/06/07/1529-fail-le-chat-qui-pete

à une structure :

http://www.fourre-tout.com/2010/06/07/fail-le-chat-qui-pete

Plus d’id de billet, ni d’index.php.

Cerise sur le gâteau, tout ce que m’envoie google est récupéré (vous verrez quand ce sera en ligne).

Comme je vous sens curieux, voici l’expression régulière miraculeuse insérée dans le fichier index.php de la racine de WordPress :

// Est-ce que le visiteur demande une ancienne adresse ?
if(preg_match("/\/index\.php/",$_SERVER['REQUEST_URI'])==1)
{
   //Recupere l'url et la stocke dans $uri
   $uri = $_SERVER['REQUEST_URI']."/";
   // Suppression de /content/index.php
   $uri = preg_replace("/\/index\.php/","",$uri);
   // Suppression du num de billet
   $uri = preg_replace("/[\/][0-9]+[\-]/","/",$uri);
   // Redirection 301
   header("HTTP/1.1 301 Moved Permanently");
   // Destination de la redirection (adresse nettoyee $uri)
   header("Location: ".$uri."");
   // On oblige PHP a arreter tout traitement
   exit();
}

Il ne me reste donc plus qu’à trouver le thème qui va bien, et à refaire les plâtres.

Notes

[1] Que ses pas soient amortis par un tapis de pétales de roses fraiches pour le restant de ses jours

Giskette

Geekette coquette avec un chat et un gros défaut... mes parents : je m'appelle Gisèle

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*