DotClear 2.0 et les redirections d'url
Par llaumgui le lundi 21 août 2006, 16:35 - Développement web - Lien permanent
La forme des urls sous DotClear 1 et sous DotClear 2 est légèrement différente. Le forum officiel propose bien une solution, malheureusement ayant modifié mes adresses à la fois sous DotClear 1 et sous DotClear 2.0, je ne peux appliquer cette astuce. J'ai donc du me faire un petit fichier .htaccess perso.
Petit récapitulatif des différences entre les urls de DotClear 1 et celle de DotClear 2 :
- DotClear 1 standard : index.php/annee/mois/jour/id-titre_du_billet
- DotClear 1 LLaumgui :</strong> index.php/titre_du_billet
- DotClear 2 standard : </strong> index.php/post/annee/mois/jour/titre_du_billet
- DotClear 2 LLaumgui :</strong> /post/titre_du_billet
But de l'opération :
Le but est de rediriger les urls de type index.php/titre_du_billet vers post/titre_du_billet. Attention cependant aux pages spéciales de DotClear telles que les archives ou les catégories de billets.
L'.htaccess expliqué :
RewriteEngine On
Activation de la réécriture des urls.
# Redirection sur le www :
#
RewriteCond %{HTTP_HOST} !^www.llaumgui.com$
RewriteRule ^(.*) http://www.llaumgui.com/$1 [QSA,L,R=301]
On redirige les urls llaumgui.com vers www.llaumgui. On ne référence ainsi qu'un seul nom de domaine.
####
# Vielles URL DC1 :
# Vieux RSS :
Redirect permanent /rss.php http://www.llaumgui.com/feed/rss2
Redirect permanent /atom.php http://www.llaumgui.com/feed/atom
Redirection des anciennes urls des feeds.
# Vielle TOC :
RedirectMatch permanent /index.php/toc(.*)$ http://www.llaumgui.com/archive
On redirige l'ancien plugin de <em>Table des matières</em> vers les archives de DotClear 2.0
# Vieux billets :
RewriteCond %{REQUEST_URI} !^/index\.php\/?$
RewriteCond %{REQUEST_URI} !^/index\.php/archive
RewriteCond %{REQUEST_URI} !^/index\.php/category
RewriteCond %{REQUEST_URI} !^/index\.php/feed
RewriteCond %{REQUEST_URI} !^/index\.php/page
RewriteCond %{REQUEST_URI} !^/index\.php/post
RewriteCond %{REQUEST_URI} !^/index\.php/tag
RewriteCond %{REQUEST_URI} !^/index\.php/tags
RewriteRule index.php/(.*) http://www.llaumgui.com/post/$1 [QSA,L,R=301]
On redirige les urls de type <em>index.php/titre_du_billet</em> en tenant compte des pages spéciales de DotClear :archives, catégories de billets, etc...
# Disparition du index.php
#Exécution des fichiers en PHP5
AddType x-mapp-php5 .php
#Indication du répertoire racine pour la réécriture
RewriteBase /
#Pas de réécriture si le fichier (-f, file) ou le dossier (-d, directory) existe
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Passage de la page demandée entière sur le index.php/
RewriteRule (.*) index.php/$1
#Redirige index.php vers index.php/ pour éviter les 404 de DC
RewriteRule ^index.php$ index.php/
#Redirige vers index.php/ si on demande pas de page spécifique
DirectoryIndex index.php
On passe d'urls standards de type index.php/post/titre_du_billet vers un format sans index.php : /post/nom_du_billet.

Commentaires