Par Catageek, vendredi 25 août 2006 à la maison :: General :: Lien permanent
Mettre son blog Dotclear à la racine est un sujet récurrent, il n'y a qu'à taper "dotclear racine" dans son moteur de recherche préféré pour s'en rendre compte. Le principe est de ne plus avoir des URL du style :
http://www.catageek.info/dotclear/index.php/2006/05/16/94-dotclear-a-la-racine
mais plutôt :
http://www.catageek.info/2006/05/16/94-dotclear-a-la-racine
C'est quand même plus joli. Et pour faire plus fort, nous allons nous débrouiller pour faire prendre en compte ce référencement par les moteurs de recherche (Google par exemple).
En effet, les moteurs de recherche n'ont aucune raison de modifier une URL dans leur référencement tant qu'ils n'ont pas reçu une erreur quand ils tentent d'accéder à cette URL.
Quelques vérifications s'imposent avant de commencer. Nous allons utiliser l'URL Rewriting d'Apache, et son module mod_rewrite. Nous utiliserons aussi des fichiers .htaccess. Vérifiez donc que tout ceci est pris en charge par le serveur.
Supprimer /dotclear/
Pour que
http://monsite.tld/dotclear/index.php/2006/05/16/94-dotclear-a-la-racine
soit maintenant accessible en
http://monsite.tld/index.php/2006/05/16/94-dotclear-a-la-racine
Nous allons réécrire les URL à la volée pour insérer /dotclear/. Nous allons créer un fichier .ht_access que l'on va placer à la racine du domaine :
RewriteEngine On
# Redirige toutes les URL vers le blog en insérant /dotclear/
# Décommentez cette ligne si vous avez un sous-domaine "blog"
#RewriteCond %{HTTP_HOST} ^blog\.votre_domaine\.fr$
RewriteCond %{REQUEST_URI} !/dotclear/
RewriteRule (.*)$ /dotclear/$1
Vous pouvez tester dès maintenant !
Supprimer /index.php/
Maintenant nous voulons que les URL du type
http://www.catageek.info/index.php/2006/05/16/94-dotclear-a-la-racine
soit accessible en
http://www.catageek.info/2006/05/16/94-dotclear-a-la-racine
et, en plus, nous voulons que les moteurs de recherche mettent à jour leur index.
Nous allons faire 2 opérations :
- Réécrire les URL à la volée pour insérer
/index.php/ - Signaler aux robots des moteurs de recherche la nouvelle URL sans
/index.php/
Mais il y a un petit problème cette fois-ci. Lorsque nous avons supprimé /dotclear/, c'est toutes les URL contenant /dotclear/ qu'il fallait réécrire. Cette fois-ci, nous devons ajouter /index.php/ dans toutes les URL ne contenant pas déjà /index.php/, or les "mauvaises" URL que nous souhaitons déréférencer par les moteurs de recherche contiennent déjà /index.php/. Les "bonnes" URL et les "mauvaises" URL contenant toutes /index.php/, comment les différencier ?
La solution est toute simple : nous renommons le fichier /dotclear/index.php en /dotclear/blog.php : les "mauvaises" URL contiendront toujours /index.php/, et les "bonnes" URL contiennent maintenant /blog.php/, et le tour est joué. il ne reste qu'à faire le tri.
On crée le fichier /dotclear/.ht_access :
RewriteEngine On
# Redirige les URL commençant par /dotclear/index.php vers /
# Puis envoie une erreur 301 Moved Permanently
RewriteCond %{REQUEST_URI} /dotclear/index\.php [NC]
RewriteRule ^index.php/?(.*)$ /$1 [R=301,L]
# Réécriture pour insertion de /blog.php/ dans l'URL
# On exclue quelques types de requête
RewriteCond %{REQUEST_URI} !/themes
RewriteCond %{REQUEST_URI} !/ecrire
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.png$
RewriteRule (.*)$ /blog.php/$1
L'astuce ici est de renvoyer une erreur "301 Moved permanently" qui sera prise en compte par les robots des moteurs de recherche, qui mettront à jour leur référencement. Consultez l'exemple de mise à jour de l'index Google pour avoir plus de détails, ou bien Google et Yahoo!.
N'oubliez pas de renommer le fichier /dotclear/index.php en /dotclear/blog.php
Enfin, dans /dotclear/conf/dotclear.ini, on modifie cette ligne pour déclarer le blog à la racine :
; URL vers le blog dc_blog_url = /
Et voilà !

Commentaires
1. Le lundi 28 août 2006 à la maison, par Catageek
2. Le mardi 12 septembre 2006 à la maison, par cypher
3. Le mercredi 13 septembre 2006 à la maison, par Catageek
4. Le samedi 4 août 2007 à la maison, par Goudie
5. Le vendredi 24 août 2007 à la maison, par Catageek
6. Le mercredi 29 août 2007 à la maison, par FeIZocE
7. Le mardi 23 octobre 2007 à la maison, par NO73
8. Le mardi 23 octobre 2007 à la maison, par NO73
9. Le jeudi 25 octobre 2007 à la maison, par Catageek
10. Le dimanche 25 novembre 2007 à la maison, par Pantin
11. Le mardi 11 mars 2008 à la maison, par karpediem
12. Le lundi 19 mai 2008 à la maison, par karpediem
13. Le dimanche 20 juillet 2008 à la maison, par musikou
S'abonner au fil rss des commentaires de ce billet
Ajouter un commentaire