Comment transformer les accents par leur code grâce à .htaccess

Discussion dans 'Netlinking, backlinks, liens et redirections' créé par bluemanca, 14 Mai 2013.

Tags:
  1. bluemanca
    bluemanca Nouveau WRInaute
    Inscrit:
    13 Décembre 2010
    Messages:
    9
    J'aime reçus:
    0
    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:
    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 !

    BlueManCa.
     
  2. bluemanca
    bluemanca Nouveau WRInaute
    Inscrit:
    13 Décembre 2010
    Messages:
    9
    J'aime reçus:
    0
    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. ;)
     
Chargement...
Similar Threads - transformer accents code Forum Date
Comment transformer les accents dans les urls URL Rewriting et .htaccess 28 Août 2014
Transformer visiteur en client Demandes d'avis et de conseils sur vos sites 15 Novembre 2017
Comment transformer ce bout de code en fonction ? Développement d'un site Web ou d'une appli mobile 28 Mars 2017
transformer le lien du site au nom ... Administration d'un site Web 25 Janvier 2016
comment garder son compte personnel Facebook sans le transformer en page Facebook 27 Novembre 2015
Transformer un blog WP avec WooCommerce e-commerce 21 Août 2015
FB m'oblige à transformer mon profil en page Facebook 15 Octobre 2014
Facebook bloque et oblige à transformer les comptes privés en page ! Facebook 20 Août 2014
Transformer page G+ en Google Adresse Google+ 11 Mars 2014
Php transformer un email en image Développement d'un site Web ou d'une appli mobile 24 Janvier 2014
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice