J’ai un peu trimé dimanche pour mettre en place une redirection par fichier .htaccess. Ayant migré pas mal de mes albums photos depuis mon ancien site (vialbost.org/bibi-ours) vers le nouveau (vialbost.org/photos), je voulais mettre en place des redirections permanentes. Par exemple : que toutes les pages de www.vialbost.org/bibi-ours/2005Maroc renvoie automatiquement à http://www.vialbost.org/photos/index.php?/category/Maroc. Pas le temps ni l’envie de rediriger chaque page ou chaque image.
Normalement, c’est facile : il suffit de créer un fichier .htacess, et de mettre :
RedirectPermanent /bibi-ours/2005Maroc/(.*)$ http://www.vialbost.org/photos/index.php?/category/Maroc
Sauf que ça ne marche pas. Le point d’interrogation est transformé automatiquement en %3F et donc la redirection se fait vers http://www.vialbost.org/photos/index.php%3F/category/Maroc, qui ne fonctionne pas.
La solution : URL rewriting. Dans le répertoire bibi-ours, je mets un .htaccess avec :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule 2005Maroc/(.*)$ /photos/index.php?/category/Maroc [R=301,L]
</IfModule>
Ca a l’air assez puissant (possibilité de définir des fichiers pour configurer les règles de réécriture), mais cette simple solution fonctionne. Evidemment, il faut que le mod_rewrite soit activé sur le serveur web.