.htaccess : comment transformer les accents en leur code ?

 
Poster un nouveau sujet   Répondre au sujet    Forums World-Informatique.com Index du Forum -> Aide Webmasters Version imprimable
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
bluemanca

P'tit Posteur
P'tit Posteur


Inscrit le: 15 Mai 2013
Messages: 3

MessagePosté le: Mer Mai 15, 2013 14:51 Répondre en citant

Bonjour à tous.

Je suis coincé par de nombreux fichiers ayant des accents dans leur nom : je migre un site hébergé sous Windows vers un autre serveur tournant lui sous Linux (hébergés 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 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:
NOM DE FICHIER                TRANSFORMATION SOUHAITÉE

Un_bel_été.jpg                Un_bel_%e9t%e9.jpg
Je_vais_à_la_plage.gif        Je_vais_%e0_la_plage.gif


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

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

http://monsite/IMAGES/Un_bel_été.jpg             http://monsite/IMAGES/Un_bel_%e9t%e9.jpg
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 !
Revenir en haut
Déconnecté Voir le profil de l'utilisateur Envoyer un message privé
bluemanca

P'tit Posteur
P'tit Posteur


Inscrit le: 15 Mai 2013
Messages: 3

MessagePosté le: Jeu Mai 16, 2013 16:35 Répondre en citant

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:
# 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/(.*)$  http://www.monsite.extension/URLRewritingPourIMAGES.php?img=$1 [L]


Le fichier "URLRewritingPourIMAGES.php ":

Code:
<?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. Wink
Revenir en haut
Déconnecté Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:    Voir le sujet précédent :: Voir le sujet suivant  
Poster un nouveau sujet   Répondre au sujet    Forums World-Informatique.com Index du Forum -> Aide Webmasters Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum



Powered by phpBB © 2001, 2005 phpBB Group   -   Traduction par : phpBB-fr.com
Hébergement offert par OVH