Aller au contenu

Adressage relatif et "Invalid URI in request GET"


Sujets conseillés

Dans la structure arborescente d'un site, l'adressage relatif d'un document situé dans un répertoire du même niveau est censé être effectué de la manière suivante : "../images/image.gif".

Cela a toujours posé des problèmes à quelques robots mais depuis quelques mois, il semble que notre ami FaceBook ne parvienne pas à gérer correctement l'adressage relatif ce qui a pour effet de poluer nos logs d'erreurs avec des messages du type : "Invalid URI in request GET /../images/image.gif HTTP/1.1".

Une réécriture d'url consistant à ôter les deux points ".." précédant les requêtes invalides permettrait de résoudre le problème.

Cela me semble moins lourd que de transformer tous les adressages relatifs du site (plusieurs dizaines de milliers) en adressages absolus.

Qu'en pensez-vous ?

D'avance, merci pour vos commentaires.

Kriss.

Lien vers le commentaire
Partager sur d’autres sites

Mes liens relatifs, vers des fichiers ou dossiers se trouvant au même niveau ressemblent plutôt à cela personnellement : document.html ou images/photo1.jpg

../

c'est pour revenir au dossier parent non ? :unsure:

Lien vers le commentaire
Partager sur d’autres sites

oui, "../" remonte bien au dossier parent donc "../images" remonte au dossier parent puis redescend dans le dossier frère/soeur "images".

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
  • 2 semaines plus tard...

Plus simplement, si tu ne mets que des <img src="/path/to/images/img.jpg" /> tu n'as pas à t'en soucier, le domaine sera utilisé avant, j'ai toujours trouvé l'adressage relatif hasardeux (../../../../.......) .

Cela pose problème si tu souhaites que ton site soit installé dans un dossier, à ce moment là cf philatex :)

Le mieux à tout point de vue reste sans aucun doute d'abstraire l'accès à ces fichiers, comme le font la majorité des framework/cms dans leur moteur de template, ex :

symfony : <img src="{{ asset('path/to/images/img.jpg') }}" />

ezpublish : <img src="{'path/to/images/img.jpg'|ezimage()}" />

codeigniter : <img src="<?php echo base_url("path/to/images/img.jpg"); ?>" />

cakephp : <?php echo $html->image('path/to/images/img.jpg'); ?>

Un modèle qui semble faire ses preuves :)

Sinon, à coup de htaccess pour passer un pansement sur ton souci ressemblerait à :

RewriteRule ^\.\.(.*)\.(jpe?g|png|gif)$ $1.$2 [L]

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...