IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[.htaccess] Redirection d'image et boucle infinie


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [.htaccess] Redirection d'image et boucle infinie
    Bonjour, voici mon problème.

    Je suis illustrateur et j'ai un portfolio en ligne visible à cette adresse http://portfolio.wopah.com

    Les illustrations sont stockées ici : http://book.wopah.com/z/albums/main/

    Ce que j'aimerais, c'est que lorsqu'on entre l'url directe d'une image dans le navigateur (par exemple http://book.wopah.com/z/albums/main/heman.jpg), cela renvoie (de façon transparente), vers un script qui affiche ladite image avec une mise en page particulière, avec un lien vers le portfolio etc.

    J'ai donc fait le script en question et créé le htaccess suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on 
    RewriteRule   ^(.+)(.jpg|.jpeg)$   ?i=$0 [L]
    La redirection s'effectue comme prévue, le problème est que le script cherche à afficher l'image (via une balise <img>), ce qui fait une nouvelle fois appelle à la redirection et crée une boucle de redirection et en définitive, rien ne s'affiche. De plus, cela pose problème dans mon portfolio qui fait appel aux images de ce dossier et se trouve confronté au même problème.

    Quelqu'un a-t-il une solution ?

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce n'est pas forcément très beau mais tu peux ajouter un paramètre d'URL dans le src de ton <img> et que tu testes dans une RewriteCond pour savoir si tu dois réécrire ou non vers ton script. Par exemple : <img src="image.jpg?toto">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{QUERY_STRING} !toto
    RewriteRule   ^(.+)(.jpg|.jpeg)$   ?i=$0 [L]
    Autre solution : utiliser un src qui n'est pas le vrai nom de l'image mais un nom préfixer par exemple et tu utilises la réécriture d'URL pour retirer le préfixe et reconstruire le nom original du fichier (et en prenant soin quand même d'ajouter un paramètre d'URL pipo qui sert juste à ne pas retomber sur la règle de réécriture qui existe déjà). Par exemple <img src="final_image.jpg">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RewriteEngine on
    RewriteRule final_(.*)\.(jpg|jpeg)$ $1.$2?toto [L]
     
    RewriteCond %{QUERY_STRING} !toto
    RewriteRule   ^(.+)(.jpg|.jpeg)$   ?i=$0 [L]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup Mac pour ta réponse (et très bel avatar).

    C'est vrai que ta solution fonctionnerait, mais j'aimerais un truc le plus "naturel" possible (sans avoir à ajouter de paramètres, changer les url etc). Ceci dit, plus ça va plus je me dis que c'est infaisable

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu as une troisième solution qui te conviendrait dans l'absolu : c'est vérifier le Referer : si, en accédant à ton URL .jpg, tu as un referer qui est cette même URL, cela veut dire qu'on demande à afficher l'image depuis ton script et que donc on ne doit pas réécrire. C'est bien joli mais il y a un problème pratiquement incontournable : certains navigateurs n'envoient pas de referer pour des raisons de confidentialité, et du coup, pour ces utilisateurs, ben ils ne pourront pas voir l'image.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

Discussions similaires

  1. [.htaccess] Redirection en boucle
    Par redah75 dans le forum Apache
    Réponses: 16
    Dernier message: 28/03/2013, 01h34
  2. HTACCESS : redirection a l'accès a une image
    Par simoroco dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 24/07/2011, 20h10
  3. [.htaccess] Redirection qui part en boucle infinie
    Par lavoiekeven dans le forum Apache
    Réponses: 1
    Dernier message: 31/10/2009, 14h40
  4. Redirection 301 boucle infini
    Par J0r_x dans le forum Débuter
    Réponses: 5
    Dernier message: 28/01/2009, 15h39
  5. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo