Changement du système de nommage des images

WRInaute passionné
Bonjour,

sur le site en WWW, des images/photos sont plutôt bien bien référencées sur GG Images mais je souhaiterais changer (pour des raisons de simplification) tous les liens images, le tout en changeant également le lien physique des images.

Actuellement, les liens sont du type :
-http://www.aquaportail.com/uploads/aquabdd/photos/poissons/eau_douce/acipenser_stellatus.jpg

Je pense qu'on comprend facilement que je veuille simplifier le type d'URL, et en profiter pour changer les underscores en tirets. Au niveau serveur, je vais regrouper toutes les images (1200 environ), actuellement sous plus de 10 répertoires différents, dans un seul et même répertoire et renommer les fichiers pour changer les "_" en "-". Aucun des noms des images n'est en double, il n'y a donc pas de difficulté à tout regrouper.

Les liens vont par la suite ressembler à
-http://www.aquaportail.com/aquabdd/photos/acipenser-stellatus.jpg (le répertoire aquabdd est laissé volontairement).
Ce ne sera pas le répertoire physique mais juste une redirection interne. En plus du répertoire photos, il y a la même chose dans un répertoire 'vignettes' à la place de 'photos' : je dois donc gérer les deux cas.

Je vais évidemment changer le code dans les pages (dans l'exemple : -http://www.aquaportail.com/fiche-poisson-1273-acipenser-stellatus.html) pour lier les nouveaux liens images.

Quelle est la meilleure solution pour gérer les redirections des anciens liens images sans perdre en linking? Ce code est-il suffisant?
Code:
RewriteRule ^uploads/aquabdd/(photos|vignettes)/([a-z_]+)/([a-z_]+)/([a-z]+)_([a-z]+)(.*)\.(jpe?g|gif|png)$	aquabdd/$1/$4-$5$6.$7 [R=301,NC]
RewriteRule ^aquabdd/(photos|vignettes)/(.*) dirreel/$1/$2 [L]

Je pense que cette partie est valide (pas testé, mais ça doit être à peu près bon).

Est-ce qu'en réalisant les choses ainsi, je conserve le linking d'une façon qui sera transmise à GG?


edit: je précise que dans la première règle, j'insère (.*) avant le point de l'extension car il peut y avoir des noms de ce type : -http://www.aquaportail.com/uploads/aquabdd/photos/invertebres/eau_douce/caridina_cantonensis_crystal_red.jpg
Si quelqu'un me donne une solution pour les _ optionnels qui finissent (il n'y aura jamais plus de 2 _ supplémentaires) le nom d'images pour les mettre en -, je suis preneur. :wink:
 
WRInaute passionné
Merci pour la réponse rapide. ;-) C'est surtout la méthode qui m'intéresse pour éviter le perdre les référencement des images (elles sont 60% dans la première page des résultats de GG images).

Ah si, il y a quelque chose que je ne sais pas faire dans le htaccess : forcer les extensions à être en minuscules...??? par exemple, je souhaiterais avoir systématiquement "jpg" à la place de "JPG".
 
WRInaute accro
Pas vérifié les regex en détail, mais sur le principe ça m'a l'air bon.

Pour gérer les noms à nombre de mots variable, deux options:
- une règle pour chaque nombre de mot
- un rewritemap avec un script externe

Pour forcer les minuscules, deux options:
- une règle pour chaque extension avec le flag NC
- un rewritemap soit avec la fonction tolower, soit avec un script externe

Si tu veux prendre l'option rewritemap pour résoudre les deux problèmes d'un coup:

Exemple de script:
Code:
#!/usr/bin/perl
$| = 1;
while (<>) {
  chop;
  if (m#^uploads/aquabdd/(photos|vignettes)/([a-z_]+)/([a-z_]+)/(.*)\.(jpe?g|gif|png)$#)
  {
    my @w = split /_/,$4;
    print "aquabdd/$1/".join("-",@w).lc $5."\n";
  }
  else
  {
    print "$_\n";
  }
}

.htaccess:
Code:
RewriteMap mymap prg:/chemin/vers/script
RewriteRule ^uploads/aquabdd/(photos|vignettes)/[a-z_]+/[a-z_]+/.*\.(jpe?g|gif|png)$ ${mymap:%{REQUEST_URI}}

Pas testé, mais ça doit pas être très loin. Evidemment si tu utilises le script ci-dessus il faut se mettre à perl :twisted:

Jacques.
 
WRInaute passionné
Merci!

Pour Perl, je vais passer mon tour même si ça ne semble pas bien compliqué.

Pour les extensions, comme j'ai tout renommé en "jpg" (minuscule) physiquement sur les disques et que il n'y a que 10 fichiers autres que (jpg|JPG), je vais faire des modifs manuellement. Pour le coup, ça résoud le problème minuscules/majuscules de l'extension : je force l'extension "jpg" dans le rewrite.

Reste le coup des underscores supplémentaires...

Dès que c'est en ligne, je donne le résultat.
 
WRInaute passionné
C'est tout bon, ça fonctionne (à un détail près : avec une 301 sur une image, il fallait que je remette le http... dans le lien de redirection).

Encore une question à propos du code généré dans cet exemple :

-http://www.aquaportail.com/fiche-corail-1179-seriatopora-hystrix.html
Code:
<div>
<h3>Photo de <em>Seriatopora hystrix</em></h3>
<a href="http://www.aquaportail.com/aquabdd/photos/seriatopora-hystrix.jpg" rel="lightbox" title="seriatopora hystrix"><img src="http://www.aquaportail.com/aquabdd/photos/seriatopora-hystrix.jpg" title="seriatopora hystrix" alt="Seriatopora hystrix" width="400" class="magnify" /></a>
</div>

Est-ce que ce n'est pas suroptimisé avec la balise TITLE dans l'Ancre et les 2 TITLE et ALT dans l'image? Le tout avec le H3 juste au dessus?
 
Discussions similaires
Haut