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.
Page 1 sur 1
Adressage relatif et "Invalid URI in request GET" Mauvaise gestion des adressages relatifs par certains bots
#1
Posté 27 janvier 2012 - 15:06
#2
Posté 27 janvier 2012 - 18:24
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 ?
../
c'est pour revenir au dossier parent non ?
Actualité Gran Turismo 6 - simulateur de conduite
Site d'actualité GTA 5 : infos et rumeurs
Webmaster sur Lyon (69) et à distance
Site d'actualité GTA 5 : infos et rumeurs
Webmaster sur Lyon (69) et à distance
#3
Posté 27 janvier 2012 - 19:19
oui, "../" remonte bien au dossier parent donc "../images" remonte au dossier parent puis redescend dans le dossier frère/soeur "images".
#4
Posté 28 février 2012 - 13:19
moi personnellement j'utilise une variable $url = http://www.mon-site.fr/ que j'inclu un fichier et j'ecris mes lien en faisant un
<?php echo'$url';?> image/image.jpg
et si un jours mon site migre ailleurs je n'ai qu'à changer ma variable url
<?php echo'$url';?> image/image.jpg
et si un jours mon site migre ailleurs je n'ai qu'à changer ma variable url
#5
Posté 12 mars 2012 - 13:30
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 à :
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]
_AT_Montpellier
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
- ← .htaccess ou session avec mot de passe
- Fichier .htaccess et réécriture d'URLs
- RewriteCond pour un site multilingue →
Partager ce sujet :
Page 1 sur 1



Haut












