Régis Posté 4 Septembre 2012 Posté 4 Septembre 2012 Bonjour, Récemment (je n'avais pas remarqué auparavant) j'ai découvert dans GG des pages en duplicate content sur mon site... Après vérification, il s'avère que des pages sont indexées sans l'extension (.php); par exemple : -www.example.com/rubrique/feuille.php est indexé aussi sous -www.example.com/rubrique/feuille Après vérification sur le site, effectivement la page "rubrique/feuille.php" est accessible aussi sous "rubrique/feuille" (sans extension et sans provoquer d'erreur 404 !!!!). Etant nul en code et donc avec htaccess... : comment puis-je faire en sorte que seules les pages avec l'extension .php soient indexées (ou que sans extension les pages soient redirigées vers .php)?
captain_torche Posté 4 Septembre 2012 Posté 4 Septembre 2012 En premier lieu, à quoi ressemble ton .htaccess actuel ?
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 Salut Régis, C'est vraisemblablement parce que Apache est configuré avec l'option MultiViews. Tu peux essayer, si le AllowOverride est correctement configuré et te le permet, de mettre ceci dans un fichier .htaccess à la racine du site Options -MultiViews
Régis Posté 4 Septembre 2012 Auteur Posté 4 Septembre 2012 Hello captain_torche Voici l'htaccess actuel : RewriteEngine onRewriteCond %{HTTP_HOST} ^example.com$RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]ErrorDocument 404 /404.php Hello Dan, Merci En lisant le doc, j'avais vu l'option MultiViews mais je n'ai pas osé l'utiliser... Je viens donc d'insérer "Options -MultiViews" => effectivement -www.example.com/rubrique/feuille n'affiche plus le contenu de "feuille.php" mais le contenu "erreur 404" sans pour autant rediriger vers le page 404.php Hum, j'espère que je suis clair... Sinon je peux vous envoyer par MP... un exemple d'url...
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 Sans l'avoir vérifié, je pense que ceci devrait fonctionner (pour autant que tous tes fichiers portent l'extension .php) : RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-lRewriteRule /?(.*) http://www.tondomaine.tld/$1.php [R=301,NC,L] A mettre APRES la ligne Options et la réécriture du domaine vers le www....
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 Ceci serait peut-être plus efficace ! RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule /?(.*) http://www.tondomaine.tld/$1.php [R=301,NC,L]
Régis Posté 4 Septembre 2012 Auteur Posté 4 Septembre 2012 YESSSSSSSSSSSSS ! Cool DAn Rapide et efficace! Merci Ok l'URL -www.example.com/rubrique/feuille redirige bien vers -www.example.com/rubrique/feuille.php Mais il reste encore un détail.... Si je fais une erreur, p.e : -www.example.com/rubrique/NIMPORTEQUOI.php => j'ai pas de redirection 404 mais -www.example.com/rubrique/NIMPORTEQUOI.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php avec un message "La page n'est pas redirigée correctement" L'htaccess actuel est RewriteEngine onRewriteCond %{HTTP_HOST} ^example.com$RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]Options -MultiViewsRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-lRewriteRule /?(.*) http://www.example.com/$1.php [R=301,NC,L]ErrorDocument 404 /404.php
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 Lis ma réponse au dessus de la tienne ! Cela devrait solutionner ce dernier problème ! En fait, je change la règle conditionnelle : - si l'URL demandée n'est pas un fichier - et si l'URL demandée à laquelle on ajoute .php EST un fichier - alors on fait la redirection ! Je pense que la première condition n'est même pas indispensable ! PS: pas si simple de faire ça sans tester
Régis Posté 4 Septembre 2012 Auteur Posté 4 Septembre 2012 Ok.... je viens de tester la 2nde solution... Cette fois-çi, je provoque une erreur du type -www.example.com/rubrique/NIMPORTEQUOI.php : je n'ai plus -www.example.com/rubrique/NIMPORTEQUOI.php.php.php.php... mais bien -www.example.com/rubrique/NIMPORTEQUOI.php avec affichage du contenu de la page 404... Est-il possible de rediriger -www.example.com/rubrique/NIMPORTEQUOI.php vers -www.example.com/404.php ? L'htaccess actuel est RewriteEngine onRewriteCond %{HTTP_HOST} ^example.com$RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]Options -MultiViewsRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule /?(.*) http://www.example.com/$1.php [R=301,NC,L]ErrorDocument 404 /404.php "PS: pas si simple de faire ça sans tester" dixit Dan... si tu veux je peux te MP le site...
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 Cette fois-çi, je provoque une erreur du type -www.example.com/rubrique/NIMPORTEQUOI.php : je n'ai plus -www.example.com/rubrique/NIMPORTEQUOI.php.php.php.php... mais bien -www.example.com/rubrique/NIMPORTEQUOI.php avec affichage du contenu de la page 404... Est-il possible de rediriger -www.example.com/rubrique/NIMPORTEQUOI.php vers -www.example.com/404.php ? C'est ce que ça fait, non ? ... si tu as bien une entête 404 qui est retournée. Il n'y a que l'URL qui n'affiche pas 404.php si je comprends bien ?
Régis Posté 4 Septembre 2012 Auteur Posté 4 Septembre 2012 Ben euh non... L'URL qui s'affiche n'est pas -www.example.com/404.php Pour être plus clair, je te MP le site + autre
Dan Posté 4 Septembre 2012 Posté 4 Septembre 2012 L'entête retournée est bien une entête 404. Le titre de page est bien celui de la page 404.php. Je ne vois que le menu à gauche qui change....
Régis Posté 4 Septembre 2012 Auteur Posté 4 Septembre 2012 Oui, je suis allé un peu vite en besogne... lol Donc tout est OK.... et la coquille est corrigée... Merci encore
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant