Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

.htaccess : transformer les accents d'une URL d'image


Messages recommandés

Posté(e)

Bonjour à tous.

 

Je suis coincé par de nombreux fichiers ayant des accents dans leur nom : je migre un site vers un serveur tournant sous Linux (hébergé chez un professionnel), et j'ai beaucoup d'images ayant des noms de fichiers avec des accents : impossible de changer leur nom vu leur nombre, et vu l'utilisation immense dans les nombreuses pages et aussi dans la base de données sous la forme d'HTML stocké.

 

Comment, grâce à de l'URL Rewriting, transformer le nom d'un fichier demandé dans une balise <IMG> dans la propriété SRC par un nom avec des codes en lieu et place des accents ?

 

Exemples d'URL demandées dans des balises <IMG> :

 

URL demandée par la propriété SRC TRANSFORMATION SOUHAITÉE

 

IMAGES/Je_vais_à_la_plage.gif IMAGES/Je_vais_%e0_la_plage.gif

En fait, voici une liste d'accents et de leur code associé que je souhaiterais convertir grâce à .htaccess :

 

è : %e8

é : %e9

à : %e0

È : %c8

É : %c9

À : %c0

etc...

 

Précision : je cherche le code à taper dans le fichier .htaccess pur réaliser la transformation souhaitée.

 

Merci à tous !

Posté(e) (modifié)

Bon, grâce à l'aide d'un internaute bienveillant, "yponomeut", et divers peaufinages, je suis parvenu à trouver une première solution qui marche nickel :

 

Le fichier .htaccess :

 

# Le serveur doit suivre les liens symboliques :

Options +FollowSymlinks

 

# Activation du module de réécriture d'URL :

RewriteEngine on

 

# Réécriture des fichiers images n'ayant pas été trouvés :

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule IMAGES/(.*)$ site.extension/URLRewritingPourIMAGES.php?img=$1 [L]

 

Le fichier "URLRewritingPourIMAGES.php ":

 

<?php

//------------------------------------------------------------------------------

// URLRewritingPourIMAGES.php

//------------------------------------------------------------------------------

// Définit certaines variables pour mon site dont $LIAISON_Root nécessaire ici

include_once "FFTI.inc.php";

 

if (isset($_GET['img']))

{

$NomFichierImage = $_GET['img'];

 

$TabAccents = array('é','è','ê','ë','È','É','Ê','Ë','à','â','ä','À','Â','Ä', 'ù','û','ü','Ù','Û','Ü','î','ï','Î','Ï','ô','ö','Ô','Ö');

 

for($i=0; $i<count($TabAccents); $i++) {$TabAccentsUTF8[] = utf8_encode($TabAccents[$i]);}

$NomFichierImage = str_replace($TabAccentsUTF8, $TabAccents, $NomFichierImage);

 

// $LIAISON_Root doit contenir le chemin physique sur le disque dur (il est initialisé par FFTI.inc.php)

$PathFileName = $LIAISON_Root.'IMAGES/'.$NomFichierImage;

$Extension = strtoupper(substr($PathFileName,-3));

 

switch ($Extension)

{

case 'JPG': $Header = 'Content-Type: image/jpeg'; break;

case 'GIF': $Header = 'Content-Type: image/gif'; break;

case 'PNG': $Header = 'Content-Type: image/png'; break;

default : exit("URLRewritingPourIMAGES.php : Type d'image non implémenté : [$Extension]");

}

 

header($Header);

readfile($PathFileName);

}

//------------------------------ FIN DE FICHIER ------------------------------?>

En espérant que cela servira à des personnes confrontées au même problème que moi. ;)

 

PS : désolé, mais votre fonction

 est buggée... ((
Modifié par Dylav
Bizarre, en effet. Pour plus de lisibilité, je l'ai changé en [quote] et police fixe ;o)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...