Dotclear 2, Dreamhost et Htaccess
Par Da Bourz le jeudi, 14 juin 2007, 10:52 - DotClear - Lien permanent
Bon, alors, un peu à cause de l'ami Richard, je me suis finalement décidé à bouger d'hébergement, et tant qu'a faire je me suis dis, allez, on bouge tout, on passe à Dotclear 2 etc...
Seulement voilà, c'est pas si simple. Si, comme d'habitude l'installation de Dotclear ne pose pas de problèmes, le reste n'a pas été sans mal.
D'abord, concernant Dotclear, j'ai fait une installation "propre" de la version 2, puis j'ai exporté mes billets, commentaires et catégories via le plugin créé à cet effet (Flat File Export) et enfin ré-importé le tout dans la nouvelle version et hop, magique, a cet instant j'ai un "Da Bourz Blog" en version 2 avec tout dedans.
C'est maintenant que les choses se compliquent, d'abord l'erreur "No input file specified" sur Dreamhost, puis la redirection des anciens liens avec un petit Htaccess, car si "cool urls don't change" et ben avec Dotclear 2 elles ont toutes changées ! Et puis moi, les Urls, je les veux jolies, en "Info_path" !
Les liens du blog version 1 n'étaient pas terrible, du genre "/weblog/index/*", cela venait d'une très ancienne version de Dotclear, et puis après je n'avais jamais vraiment voulu changer. Sur cette nouvelle installation je veux faire disparaitre le "index/" afin que toutes les Urls commencent seulement par "/weblog/" le reste directement. Mais je veux aussi que les gens venant des anciennes "/weblog/index/" arrivent sur l'accueil. Hors sur Dreamhost, quand on appelle seulement "index/" (ou index.php/) avec un slash derrière, et ben ça donne un "No input file specified". J'ai cherché à comprendre et à corriger, mais pressé par le temps et comme je n'ai rien trouvé, j'ai utilisé le Htaccess pour contourner le problème. Du coup, j'ai commencé ce Htaccess avec deux choses :
- Réécrire les demandes à "index/" seules pour virer le "/" à la fin.
- Faire en sorte que tout ce qui passe après le /weblog/ soit renvoyé à /weblog/index.php/ avec tous les paramètres derrière pour que cela marche.
J'ai cherché, cherché sur le Web et j'ai fini par trouver mon bonheur chez Kozlika et chez Benoit.
J'ai ensuite rajouté mes propres trucs dans le Htaccess, surtout pour l'histoire de "index/" :
RewriteRule ^index\.php/$ /weblog/ R=permanent
Et pour les archives :
RewriteRule ^index.php/(0-9{4})/(0-9{2}) /weblog/archive/$1/$2
Bref, après tout cela ça marche, et normalement toutes les anciennes URLs sont reprises. Donc pas de casse, un déménagement sans changer d'adresse en quelque sorte !! 
Je met ici le Htaccess complet, pour référence, si vous avez des questions n'hésitez pas !
Options +MultiViews
RewriteEngine On
RewriteBase /weblog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /weblog/index.php/$1
RewriteRule ^index\.php/$ /weblog/ [R=permanent]
# Pour les redirections des flux RSS/Atom des categories
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^rss.php /weblog/feed/category/%1/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^cat=([A-Z][A-Za-z0-9_-]*)$
RewriteRule ^atom.php /weblog/feed/category/%1/atom [R=301]
# Pour les redirections des flux RSS/Atom generaux
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^rss.php /weblog/feed/rss2 [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^rss.php /weblog/feed/rss2/comments [R=301]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^atom.php /weblog/feed/atom [R=301]
RewriteCond %{QUERY_STRING} ^type=co$
RewriteRule ^atom.php /weblog/feed/atom/comments [R=301]
# Billet : YYYY/MM/DD/##*
RewriteRule ^index.php/(\d{4})/(\d{2})/(\d{2})/(\d+.+)$ /weblog/post/$1/$2/$3/$4 [R=301,L]
# Categorie : Nom-categorie
RewriteRule ^index.php/([A-Z][A-Za-z0-9_-]*)$ /weblog/category/$1 [R=301,L]
# Archives : YYYY/MM
RewriteRule ^index.php/([0-9]{4})/([0-9]{2}) /weblog/archive/$1/$2
Commentaires
Ton serveur tourne avec le fcgid de apache ?
Chty
Euh, en clair, tu veux dire quoi ?
je voulais juste savoir le mode de fonctionnement de ton serveur.
Ecoute, aucune idée de comment c'est foutu chez DreamHost pour ça .
ok
Hallo.
I'm sorry.
I can't speak french.
Would you mind giving me some explanation in English?
Cause I have problem in my dotclear blog, and I host my blog at Dreamhost.
I always get "No input file specified" everytime I tried to open any page, like "Commentaires" section.
Thank you.
Bonjour,
Bravo pour le billet, je voulais savoir si tu étais toujours chez Dreamhost ?
Car je rencontre actuellement ton problème de "No input file specified" et pas moyen de le contourner, même en appliquant le htaccess que tu donnes dans ton billet.
Mon but est d'avoir le même type d'url que toi (comme j'avais chez mon ancien hebergeur) sauf que mon blog est à la racine de mon domaine cette fois-ci.
Merci d'avance pour ta réponse !
J'avoue ne pas trop savoir si je vais rester chez Dreamhost du coup.
Salut, pour le "no input" c'est cette partie là :
Options +MultiViews
RewriteEngine On
RewriteBase /weblog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /weblog/index.php/$1
RewriteRule ^index\.php/$ /weblog/ [R=permanent]
Ok merci je vais essayer