Problème d'URL Rewriting pour des images

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Problème d'URL Rewriting pour des images

Message le Ven Oct 28, 2005 15:00

Bonjour à tous,

Je suis encore relativement débutant en URL Rewriting et je n'arrive pas à résoudre ce problème.

Mon but est de changer l'URL :
http://www.jamesbond-fr.com/filmographie/photos/thumbs/image_m.jpg
en
http://www.jamesbond-fr.com/filmographie/photo/thumbs/image_m.jpg

Pour le moment j'utilise cette règle de réécriture mais ça ne marche pas. J'ai une erreur 404 parce que ça dit que l'image filmographie/photo/thumbs/image_m.jpg est introuvable (normal c'est la règle que j'essai de mettre en place).
Code: Tout sélectionner
RewriteRule ^filmographie/photo/(.*)/thumbs/(.*)$ filmographie/photos/$1/thumbs/$2 [L]


Si vous voyez où se situe le problème :roll:

Merci d'avance !

PS : La différence se situe au niveau du dossier photos/ que je cherche à transformer en photo/.
Comme ça ça à l'air bête de faire ça mais là j'ai simplifié un peu la chose.


dixenet
WRInaute discret
WRInaute discret
 
Messages: 163
Inscription: 7 Déc 2004

Message le Ven Oct 28, 2005 15:05

euh question con : pk tu te fais chier a faire de l'UR alors que tu pourrais simplement renommé le dossier avec ton client FTP ?

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Message le Ven Oct 28, 2005 15:26

Bon ba je vais tout expliquer de A à Z alors :lol: (d'ailleurs peut-être qu'il y a une solution plus simple)

Préambule
Si je met des URL qui sont des URL spécifiques à mon site ce n'est pas pour faire de la pub mais pour pouvoir expliquer ça d'une façon claire parce qu'il va falloir s'accrocher :lol:

L'Objectif dans notre cas
Le but est de mettre en URL Rewriting un script d'album photo en PHP pour que les images soient référencées par GoogleImage.

Fonctionnement du script au départ
Le script est installé à cette adresse : http://www.jamesbond-fr.com/filmographie/photos/
Les photos sont stockés dans photos/Album/image.jpg, les miniatures dans photos/Album/thumbs/image_m.jpg.
Lorsqu'on ouvre un album on clique sur l'URL : photos/browser.php?directory=Album.
Lorsqu'on visualise une image on va sur l'URL : photos/window.php?img_name=Album/image.jpg&img_w=650&img_h=433 (si image.jpg fait 650x433).

Fonctionnement du script en utilisant l'URL Rewriting
- Sommaire des albums : photos/ (ça ça ne change change pas)
- Ouverture d'un album : photos/Album
Règle utilisée :
Code: Tout sélectionner
RewriteRule ^photos/([-0-9A-z]+)$ /filmographie/photos/browser.php?directory=$1 [NC,L]

Le problème qui se pose : il semblerait que la règle ne marche pas comme il faut puisque je suis renvoyé dans le dossier photos/Album réel, là où il y a une page index.php qui me dit que je n'ai pas à accéder à ce dossier.

Solution possible à ce problème
Changer légèrement le nom de l'album.
Exemple :
Code: Tout sélectionner
RewriteRule ^photos/([-0-9a-z]+)-$ /filmographie/photos/browser.php?directory=$1 [NC,L]

Ce qui donnerais donc : photos/Album-

Ou alors pour garder le nom originel de l'album :
Code: Tout sélectionner
RewriteRule ^filmographie/photo/([-0-9A-z]+)$ /filmographie/photos/browser.php?directory=$1 [L,NC]

Ce qui revient à renommer le dossier photos/ en photo/
Ce cas marche mais toutes les miniatures qui sont affichés dans l'album ne marche plus (voir donc plus haut). Et c'est là que je bute.

J'espère que c'était à peu près compréhensible :roll:

squawk
WRInaute accro
WRInaute accro
 
Messages: 5985
Inscription: 22 Mar 2004

Message le Ven Oct 28, 2005 15:39

J'ai rien compris :)

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Ven Oct 28, 2005 15:50

Il va te falloir modifier les scripts PHP aussi, non ? Car c'est, par exemple, browser.php qui construit la page avec les liens vers les images, or celui-ci affichera obligatoirement l'URL au format windows.php?img_name... et non l'URL que tu veux passer à la moulinette rewrite.

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Message le Ven Oct 28, 2005 16:08

Oui mais ça c'est pas très compliqué. :roll:

@squawk : J'ai fait au plus simple désolé. Mais à la limite c'est pas très grave puisque mon 2e message était pour expliquer pourquoi est-ce que je voulais avoir photo/ à la place de photos/.

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Ven Oct 28, 2005 18:46

Pourtant ça, ça devrait fonctionner :
Code: Tout sélectionner
RewriteRule ^/?photos/([^/]+)$   /filmographie/photos/browser.php?directory=$1 [NC,L]


Ceci dit, ça ne marchera pas d'entrée de jeu avec tes répertoires qui ont des espaces, puisque tu devrais les remplacer par des %20 pour avoir une URL valide. Peut-etre que ton problème vient de ces répertoires ?

Sinon, si tu as moyen, essaye de remplacer le [NC,L] par [NC,R] le temps de voir l'URL ré-écrite

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Message le Sam Oct 29, 2005 1:15

ChezThierry a écrit:Pourtant ça, ça devrait fonctionner :
Code: Tout sélectionner
RewriteRule ^/?photos/([^/]+)$   /filmographie/photos/browser.php?directory=$1 [NC,L]


Ceci dit, ça ne marchera pas d'entrée de jeu avec tes répertoires qui ont des espaces, puisque tu devrais les remplacer par des %20 pour avoir une URL valide. Peut-etre que ton problème vient de ces répertoires ?

Sinon, si tu as moyen, essaye de remplacer le [NC,L] par [NC,R] le temps de voir l'URL ré-écrite


Merci pour ta réponse déjà :wink:

2 questions (surement très bêtes) :
- Pourquoi tu met un ? devant photos/
- J'ai jamais compris à quoi correspondait ces balises en fin de règle. Donc c'est quoi la différence entre [NC,L] et [NC,R] ?

Une autre interrogation :
Code: Tout sélectionner
RewriteRule ^/?photos/([^/]+)$   /filmographie/photos/browser.php?directory=$1 [NC,L]

Ca sous-entend que je met mon .htaccess dans filmographie/ ou dans photos/ ?

Si c'est dans photos/ ça me pose un problème parce que mon script de photo reconnait ce fichier comme un dossier et m'affiche une erreur (même si dans le code php ça doit être résolvable, si il existe une solution plus simple grace à l'URL Rewriting je préfère).

Tous mes tests je les ai fait sur un dossier qui n'avait pas d'espace, juste une majuscule au début. Je pense pas que ce soit très compliqué de mettre des tirets à la place des espaces par la suite.

Maintenant je vais aller tester ton bout de code :wink: :D

EDIT : Ca ne marche pas (même en enlevant le ?) :cry:

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Sam Oct 29, 2005 14:24

CrazyCow007 a écrit:Merci pour ta réponse déjà :wink:

2 questions (surement très bêtes) :
- Pourquoi tu met un ? devant photos/
- J'ai jamais compris à quoi correspondait ces balises en fin de règle. Donc c'est quoi la différence entre [NC,L] et [NC,R] ?



- Bah je commence par /? parce que j'ai remarqué que le / initial n'apparaissait pas toujours dans les règles de rewrite, alors par habitude je le met toujours au conditionnel (/? match un / ou rien)

- NC veut dire NoCase : pas de test sur les majuscules/minuscules, donc PHOTOS et photos match pareil
- L et R sont deux types de ré-ecriture, avec L, c'est fait en local, le navigateur client ne voit pas la différence. Avec R, c'est une redirection, le navigateur de l'utilisateur reçoit donc la nouvelle URL remaniée et tu la vois apparaitre dans la barre d'adresse de ton navigateur comme si tu l'avais tapée, ça permet de vérifier ce qu'a faire le .htaccess

Quant à l'emplacement du .htaccess, je le mettrais à la racine, pas dans photos/

Maintenant, tu me dis que ça ne fonctionne pas, faudrait voir avec ce que le NC,R retourne, voir si l'URL a bien été modifiée, parce que sur mes essais rapides chez moi, ça fonctionne, je transforme bien /photos/truc par /filmographie/photos/brower.php?directory=truc

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Message le Sam Oct 29, 2005 14:26

C'est donc hyper pratique [R] :D

Moi qui justement me cassait la tête a essayer de voir si l'URL renvoyé était bonne.
Je teste tout ça et je te redis ;)

CrazyCow007
WRInaute discret
WRInaute discret
 
Messages: 182
Inscription: 28 Déc 2003

Message le Sam Oct 29, 2005 15:34

Avec la balise [R] ça me renvoit http://www.jamesbond-fr.com/filmographie/photos/browser.php?directory=Goldeneye et donc ça marche :D

Par contre en [L] ça me donne http://www.jamesbond-fr.com/filmographie/photos/Goldeneye/?directory=Goldeneye

Voilà mon .htaccess (qui est placé dans filmographie/photos) :

Code: Tout sélectionner
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([-0-9a-z]+)$ /filmographie/photos/browser.php?directory=$1 [NC,L]

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Sam Oct 29, 2005 20:58

Bon, après vérification, j'ai dit une c*nnerie plus grosse que moi... le [R] fait bien ce que j'ai dit, mais le [L] signifie : Last, pour éviter de faire une substitution quand celle-là a été appliquée.

Tu devrais donc garder [NC,L], mais si tu veux tester avec le [R], faudra faire [NC,R,L]

Essaye donc la ligne exacte suivante :
RewriteRule ^/?photos/([^/]+)$ /filmographie/photos/browser.php?directory=$1 [NC,L,R]

Juste pour voir...

et donc une url du type h**p://www.tonsite.com/photos/GoldenEye

ça, chez moi en local sur xampp ça fonctionne nickel
PS: et toutes mes excuses pour le [L], j'étais persuadé que ça signifiait Local et non Last. M'a fallu replonger dans la doc pour m'en rendre compte.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Analyse de popularité
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité