Version complète: sur le forum Webmaster Hub : Indexation d'urls inexistantes
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Americas
J'ai un problème avec Google au niveau de l'indexation de mes pages.
J'avais un annuaire DMOZ dans la rubrique http://www.americas-fr.com/annuaire/ et j'ai décidé de remplacer ce dernier par un nouvel annuaire que je crée avec PhpLinkDirectory

Le problème c'est que Google continue à indexer des pages de l'ancien annuaire qui n'existe plus du tout avec des urls de ce genre : -http://www.americas-fr.com/annuaire/index.php/World/Slovensko/Reference/Izobra%25u017Eevanje/

Cette Url qui vient de l'ancien annuaire Dmoz est dirigée vers la page d'accueil du nouvel annuaire qui se trouve dans le répertoire de l'ancien, sans doute à cause des régles de réécriture donnée dans le htaccess à la racine de cet annuaire :

CODE
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [QSA,L]


Comment faire pour lui renvoyer un code 404 pour les anciennes urls ?
Dan
Salut,

Tout simplement avec un
CODE
RewriteRule .* http://www.domaine.tld/index.php [R=404,L]


Dan
Americas
Non... si je remplace
CODE
RewriteRule .* index.php [QSA,L]
par
CODE
RewriteRule .* http://www.americas-fr.com/index.php [R=404,L]
cela me donne une erreur 500 sad.gif
Jeanluc
Pourquoi pas ceci, tout simplement ?
CODE
ErrorDocument  404  /index.php


Jean-Luc
Americas
ça c'est ce que j'ai dans mon htaccess à la racine du site.

Mais cela ne va pas entrer dans les règles de rewriting qui sont dans le htaccess du répertoire de l'annuaire.

le problème serait plutôt de lui interdire de rediriger les urls invalides vers l'index en listant les liens réellement valides unsure.gif
Jeanluc
Suggestion:
CODE
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* page-ki-nexiste-pa.html [QSA,L]


Mon interprétation: si la requête ne correspond pas à un directory existant, ni à un fichier existant, ni à ("-l", c'est quoi ?), alors la page demandée est ré-écrite en page-ki-nexiste-pa.html. Comme cette page n'existe pas, Apache renvoie un code 404. Si, par ailleurs, tu as le ErrorDocument adapté, la page affichée à l'internaute est celle que tu veux.

Non testé! whistling.gif

Qu'en penses-tu ?

Jean-Luc
Dan
Tout à fait !

Malheureusement l'option R ne permet pas le 404 ni le 410... désolé mais c'est contraire à la doc Apache sad.gif

Donc il suffit de rediriger vers un fichier qui n'existe pas et c'est ton ErrorDocument 404 qui prendra le relais.

Si ton nouvel annuaire se trouve dans un autre répertoire, il suffirait aussi de virer le répertoire annuaire, non ?

Dan
Nicolas
CITATION(Dan @ jeudi 13 avril 2006, 16h33)
Si ton nouvel annuaire se trouve dans un autre répertoire, il suffirait aussi de virer le répertoire annuaire, non ?

Dan
*


Il ne peut pas car le repertoire "annuaire" semble etre utilisé pour le nouvel annuaire...

Pourquoi ne pas bloquer l'indexation des adresses -http://www.americas-fr.com/annuaire/index.php dans le robots.txt ?
Americas
CITATION(Nicolas @ jeudi 13 avril 2006, 16h38)
Pourquoi ne pas bloquer l'indexation des adresses -http://www.americas-fr.com/annuaire/index.php dans le robots.txt ?
*


C'est pas vraiment le but recherché si je veux que Google indexe l'annuaire wink.gif

CITATION(Dan)
Si ton nouvel annuaire se trouve dans un autre répertoire, il suffirait aussi de virer le répertoire annuaire, non ?


Oui... ça serait la solution la plus simple... renommer le répertoire de l'annuaire pour ne plus ête ennuyé par les anciennes urls indexées par Google.
Mais là également, le but était de bénéficier du PR de l'ancien index de ce répertoire afin d'accélerer l'indexation du nouvel annuaire.
Nicolas
CITATION
C'est pas vraiment le but recherché si je veux que Google indexe l'annuaire wink.gif


Bloquer -http://www.americas-fr.com/annuaire/index.php ce n'est pas pareil que de bloquer -http://www.americas-fr.com/annuaire/

Si tu spécifies dans le robots.txt de bloquer les @ /annuaire/index.php ca ne devrait pas bloquer l'adresse /annuaire/ et les adresses /annuaire/xxxxx
captain_torche
Mais si l'index de l'annuaire, est un fichier index.php, ça risque de poser des problèmes.

Mais, au vu des précédents posts, je pense qu'il serait judicieux de bloquer quelque chose comme 'annuaire/index.php/.+' (je doute que le nouvel annuaire utilise ce genre de formats d'url).
Americas
C'est bon maintenant... j'ai la solution en partenariat avec un autre forum wink.gif

Elle est ici : http://forum.taggle.org/viewtopic.php?pid=17094#p17094

En fait... il faut modifier le code de l'index.php du script de l'annuaire.
C'est un truc qui peut sûrement intéresser ceux qui utilisent ce script car j'ai fait le test sur de nombreux sites qui l'ont... et toutes les fausses urls sont redirigées vers l'index avec un code 200 et c'est pas très bon pour l'indexation ça.

Par contre... si quelqu'un trouve la solution avec le htaccess... je suis preneur
Dan
CITATION(Americas @ jeudi 13 avril 2006, 18h33)
Par contre... si quelqu'un trouve la solution avec le htaccess... je suis preneur
*

On te l'a donnée plus haut smile.gif
Americas
Oups ! J'avais complètement zappé l'astuce de Jeanluc avec son code quand tu as disais que la doc Apache ne le permettait pas.
J'ai mal lu la combine... désolé Jeanluc blush.gif

Avec ça :

CODE
RewriteRule .* page-ki-nexiste-pa.html [QSA,L]


ça fonctionne parfaitement et ça me renvoie sur la page d'erreur 404 :up:

Bravo B)
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.