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
1 De Chty -
Ton serveur tourne avec le fcgid de apache ?
Chty
2 De Da Bourz -
Euh, en clair, tu veux dire quoi ?
3 De Chty -
je voulais juste savoir le mode de fonctionnement de ton serveur.
4 De Da Bourz -
Ecoute, aucune idée de comment c'est foutu chez DreamHost pour ça .
5 De Chty -
ok
6 De Budiaji Hartono -
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.
7 De Docslumpy -
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.
8 De Da Bourz -
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]
9 De Docslumpy -
Ok merci je vais essayer