[htaccess] problème avec répertoires "fantômes"

WRInaute passionné
edit: j'ai effacé mon précédent post car j'avais mal cerné le problème

bonjour,

sur un site actuellement en développement, je me suis rendue compte qu'en injectant des répertoires "fantômes" dans l'url, je n'obtenais pas une erreur 404, mais une page équivalente à la "bonne" page.

exemple:

page originale:
-http://www.example.com/ma-page.html

pages problématiques renvoyant le même contenu:
-http://www.example.com/nimportekoi/ma-page.html
-http://www.example.com/blablabla/ma-page.html

en testant plusieurs sites, dont des "gros", on se rend compte qu'un (très) grand nombre de sites ont ce problème!
exemple avec un "gros" de la location de vacances:

page originale:
-http://www.homelidays.com/caracas/appartement104723fr1.htm

pages fantômes fonctionnant:
-http://www.homelidays.com/caracas/blablablabla/appartement104723fr1.htm
-http://www.homelidays.com/caracas/superleduplictatecontent/appartement104723fr1.htm
-http://www.homelidays.com/blablablablabla/caracas/appartement104723fr1.htm
- etc etc.

sûrement un petit souçi au niveau du htaccess, comment régler ce problème? je n'ai trouvé qu'un seul topic à ce sujet, ici, mais resté sans réponse...
 
WRInaute accro
La solution peut-être de vérifier dans le langage serveur utilisé (PHP par exemple) que l'url utilisée est valide par rapport au type de contenu affiché.
 
Olivier Duffez (admin)
Membre du personnel
en général il faut en effet vérifier en 1er dans le script de la page, que l'URL demandée est bien l'URL officielle, et rediriger en 301 vers l'officielle si nécessaire. J'ai proposé dans mon article sur le duplicate content un bout de script qui peut servir à certains.

Il existe un plugin pour Wordpress qui redirige en 301 si l'URL demandée n'est pas l'URL officielle (je l'ai supprimé de WRI car c'était incompatible avec mes URL bidouillées de pages catégories, mais cette discussion est l'occasion de m'y replonger)
la version SEO que j'utilise de phpBB intègre un mod qui gère ça également

sinon il y a aussi la possibilité d'utiliser la balise link rel canonical
 
WRInaute accro
Salut,
Le problème initial vient du fait que logiquement tu te sers d'une formule simplifiée de ré-écriture de ces dossiers "virtuels", de fait cela agit comme une wildcard et ré-écrit même si le nom de dossier est "erroné", la solution la plus basique consiste à inscrire à même la règle de ré-écriture le nom du dossier et donc d'avoir une ligne dans le .htaccess par chaque dossier que tu veux être valide. Ce faisant tu as bien une 404 si le dossier n'existe pas.
Sinon effectivement tu agis en aval avec une règle de redirection en PHP par exemple qui vérifiera que le dossier "virtuel" existe et à l'inverse redirigera vers le bon ou, si tu préfères, provoquera l'affichage d'une 404 par injection dans l'entête HTTP.
@+
 
Discussions similaires
Haut