28
oct. 07
HELP ME !!! Plus de index.php dans mes urls
Par Guillaume BIZET | Lien permanent
Pourquoi plus de index.php dans les urls ?
Les urls actuelles de mes billets étaient de la forme
http://www.guillaumebizet.fr/index.php/post/2007/10/06/titre
et je voulais qu'elles soient de la forme
http://www.guillaumebizet.fr/post/2007/10/06/titre
Vous allez me demander pourquoi !!! Tout simplement parce que pour le référencement des billets c'est bien mieux et en plus cela parait plus logique et agréable à l'oeil. Oui je sais tout le monde ne regarde pas les urls des sites mais bon c'est comme ça, je suis pointilleux 
Ma configuration actuelle
- application (dotclear) dans le répertoire /blog/
- index.php déplacé à la racine de mon espace web avec la méthode ci dessous
- modif de l'index.php, en remplaçant la ligne "require dirname(__FILE__).'/inc/public/prepend.php';" par "require dirname(__FILE__).'/blog/inc/public/prepend.php';"
- collage de ce nouvel index à la racine
- Puis dans le panneau d'administration, Tableau de Bord -> Paramètres du blog, modification de l'URL du blog en http://www.guillaumebizet.fr/index.php/
- Enfin dans le panneau d'administration -> about:config, modification des urls :
- public_url : /blog/public
- themes_url : /blog/themes
Pour enlever ce index.php, j'ai pas mal tatonné mais j'ai enfin trouvé le htaccess qui va bien :
# Pour activer PHP 5 :
AddType x-mapp-php5 .php
DirectoryIndex index.php/
#Activation du module de réécriture
RewriteEngine On
#renvoi de bizetfamily.net vers www.bizetfamily.net pour éviter le duplicate content
RewriteCond %{HTTP_HOST} !^www.bizetfamily.net$
RewriteRule ^(.*) http://www.guillaumebizet.fr/$1 [QSA,L,R=301]
#suppression de index.php
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1
HELP ME pourquoi alors
Ce qu'il me reste à faire et je ne sais pas comment le faire c'est de rediriger index.php vers /
Je m'explique. Actuellement vous pouvez accéder au blog via 2 urls
http://www.guillaumebizet.fr et http://www.guillaumebizet.fr/index.php/
Et moi je veux que les personnes tapant http://www.guillaumebizet.fr/index.php/ soient redirigées sur http://www.guillaumebizet.fr/
Pourquoi vouloir cette redirection : parce que j'ai une déperdition d'environ 1800 backlinks sur mon url de base à savoir http:///www.bizetfamily.net/ [1] (cf image ci-dessous)

Conclusion
Voilà, maintenant vous savez tout 
Merci d'avance de votre aide parce que là j'ai eu beau tenter plein de truc ça ne fonctionne pas donc des pistes ou encore mieux une solution sont les bienvenues !!!
J'ai trouvé la solution !!!
Merci de m'avoir aidé cela m'a mis sur de bonnes pistes.
Voici donc le htaccess complet
# Pour activer PHP 5 :
AddType x-mapp-php5 .php
DirectoryIndex index.php/
#Activation du module de réécriture
RewriteEngine On
#renvoi de bizetfamily.net vers www.bizetfamily.net pour éviter le duplicate content
RewriteCond %{HTTP_HOST} !^www.bizetfamily.net$
RewriteRule ^(.*) http://www.guillaumebizet.fr/$1 [QSA,L,R=301]
#Redirection de /index.php/ et /index.php vers www.bizetfamily.net
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php/|html/)\ HTTP
RewriteRule ^(.*)index\.(php/|html/)$ /$1 [R=301,L]
#suppression de index.php des urls
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1
Notes
[1] ce qui est tout de même balot, vous ne trouvez pas 

































Commentaires
spawnrider
28/10/2007 - 11:26
Là, je ne peux pas t'aider... désolé.
beau travail, je sais je me répète....
Mais m####! qu'il est beau ton blog, à chaque fois, je craque, je suis jaloux, envieux
Mais dès que tu as une solution préviens moi
JFMichaud
28/10/2007 - 13:15
Ce que je t'ai envoyé ne fonctionne pas donc?
Dis moi je comprends le principe, mais moi dans mon cas, si je pointe avec /blog/ j'ai un PR de 3 alors que si je pointe sur /blog/index.php je passe à un PR4. En ce sens je présume qu'un redirection favoriserait ma situation...Soit mais enlever le index.php ou au contraire le forcer? Donc si tu trouve une solution je suis preneur aussi
Au fait, merci encore pour ta dispo, comme tu va voir j'ai redirigé, avec tes conseils le feed DC vers feedburner et je suis passé de 7 à 27 abonnés du jours au lendemain...
David
28/10/2007 - 13:39
Il faut faire un RewriteRurul dans ton htaccess
RewriteRule ^index.php/$ http://www.guillaumebizet.fr/ R=301,L
Je pense que ca devrait marcher
David
Guillaume
28/10/2007 - 14:14
@spawnrider merci pour les compliments
@JFMichaud non ça ne fonctionne pas c'est pour ça que je mets carrément un post
@David ça ne fonctionne pas car cela me mets un message d'erreur "Redirection de page incorrecte
Firefox a détécté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas"
Je me pose du coup aussi une autre question : l'ordre de présentation des rewrite rules dans le htaccess joue t'il ?
Arkan
28/10/2007 - 15:07
Il me semble que c'est la même chose qu'Aymeric avait rencontré non ?
http://www.ajblog.fr/optimiser-la-s...
Guillaume
28/10/2007 - 19:27
@Arkan non lui il avait aussi un problème de renvoi des anciennes urls avec index.php vers les nouvelles ce qui n'est pas mon cas. Merci
Je continue à chercher mais je ne trouve vraiment pas. Grrrrrrrrr
JFMichaud
29/10/2007 - 05:49
Ceci ça donne quoi?
@@Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.domain.com/$1 R=301,L@@
Guillaume
29/10/2007 - 11:27
Solution trouvée je vous laisse aller lire la fin de mon post que je viens de mettre à jour
weetabix
29/10/2007 - 15:26
trop sympa çà guillaume !