Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2711 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [.htaccess] remplacer les accents par leur code - URL rewriting

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[.htaccess] remplacer les accents par leur code - URL rewriting

n°2190192
bluemanca
Posté le 15-05-2013 à 00:07:03  profilanswer
 

Bonjour à tous.
 
Je suis coincé par de nombreux fichiers ayant des accents dans leur nom : je migre un site hébergé sous Windows chez un professionnel vers un autre serveur tournant lui sous Linux chez le même 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 un nom d'un fichier demandé (ou une URL) par un nom avec des codes en lieu et place des accents ?
 
Exemples avec des noms de fichier :
 

Code :
  1. NOM DE FICHIER                TRANSFORMATION SOUHAITÉE
  2. Un_bel_été.jpg                Un_bel_%e9t%e9.jpg
  3. Je_vais_à_la_plage.gif        Je_vais_%e0_la_plage.gif


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

Code :
  1. URL demandée par la propriété SRC                TRANSFORMATION SOUHAITÉE
  2. http://monsite/IMAGES/Un_bel_été.jpg             http://monsite/IMAGES/Un_bel_%e9t%e9.jpg
  3. IMAGES/Je_vais_à_la_plage.gif                    IMAGES/Je_vais_%e0_la_plage.gif


 
En fait, voici une liste d'accents NON EXHAUSTIVE et de leur code associé que je souhaiterais convertir grâce à .htaccess :
 
è : %e8
é : %e9
à : %e0
È : %c8
É : %c9
À : %c0
etc...
 
Précision : je cherche une solution exclusivement mis en oeuvre grâce à du code tapé dans .htaccess.
 
Merci à tous !
 
BlueManCa.

mood
Publicité
Posté le 15-05-2013 à 00:07:03  profilanswer
 

n°2190459
bluemanca
Posté le 16-05-2013 à 16:24:01  profilanswer
 

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 :
 

Code :
  1. # Le serveur doit suivre les liens symboliques :
  2. Options +FollowSymlinks
  3. # Activation du module de réécriture d'URL :
  4. RewriteEngine on
  5. # Réécriture des fichiers images n'ayant pas été trouvés :
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteRule IMAGES/(.*)$  http://www.monsite.extension/URLRe [...] php?img=$1 [L]


 
Le fichier "URLRewritingPourIMAGES.php ":
 

Code :
  1. <?php
  2. //------------------------------------------------------------------------------
  3. // URLRewritingPourIMAGES.php
  4. //------------------------------------------------------------------------------
  5. // Définit certaines variables pour mon site dont $LIAISON_Root nécessaire ici
  6. include_once "FFTI.inc.php";
  7. if (isset($_GET['img']))
  8. {
  9.   $NomFichierImage = $_GET['img'];
  10.  
  11.   $TabAccents = array('é','è','ê','ë','È','É','Ê','Ë','à','â','ä','À','Â','Ä','ù','û','ü','Ù','Û','Ü','î','ï','Î','Ï','ô','ö','Ô','Ö');
  12.  
  13.   for($i=0; $i<count($TabAccents); $i++) {$TabAccentsUTF8[] = utf8_encode($TabAccents[$i]);}
  14.   $NomFichierImage = str_replace($TabAccentsUTF8, $TabAccents, $NomFichierImage);
  15.  
  16.   // $LIAISON_Root doit contenir le chemin physique sur le disque dur (il est initialisé par FFTI.inc.php)
  17.   $PathFileName = $LIAISON_Root.'IMAGES/'.$NomFichierImage;
  18.   $Extension = strtoupper(substr($PathFileName,-3));
  19.  
  20.   switch ($Extension)
  21.   {
  22.     case 'JPG': $Header = 'Content-Type: image/jpeg'; break;
  23.     case 'GIF': $Header = 'Content-Type: image/gif'; break;
  24.     case 'PNG': $Header = 'Content-Type: image/png'; break;
  25.     default : exit("URLRewritingPourIMAGES.php : Type d'image non implémenté : [$Extension]" );
  26.   }
  27.  
  28.   header($Header);
  29.   readfile($PathFileName);
  30. }
  31. //------------------------------ FIN DE FICHIER ------------------------------?>


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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [.htaccess] remplacer les accents par leur code - URL rewriting

 

Sujets relatifs
soucis pour integrer un code dans forumgratuitobfusquer code source php
Problème de compréhension d'un bout de codeSécuriser son code source PHP avec Bcompiler ou un autre encodeur
Modifier code javascript avec promptRemplacer un mot dans un fichier
mysql C++ code blocksCode pour exécuter un traitement différent si un mobile est détecté.
Parallélisation code R avec Snowfall[C] Remplacer un char dans une chaine de caractère
Plus de sujets relatifs à : [.htaccess] remplacer les accents par leur code - URL rewriting


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR