Htaccess (ou php) qui modifie l'url en fonction de HTTP_ACCEPT_LANGUAGE

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 29 Septembre 2016.

Tags:
  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Bonjour,

    je souhaite mettre en place la modification de l'url en fonction de HTTP_ACCEPT_LANGUAGE.

    Si l'utilisateur se connecter avec un HTTP_ACCEPT_LANGUAGE = fr on affiche l'url suivant http://monsite.com

    Si l'utilisateur se connecte avec un HTTP_ACCEPT_LANGUAGE = es on affiche http://es.monsite.com

    Si l'utilisateur se connecte avec un HTTP_ACCEPT_LANGUAGE = pt on affiche http://pt.monsite.com

    et si HTTP_ACCEPT_LANGUAGE est différent de es, fr et pt, on affiche http://en.monsite.com

    J'ai également essayé directement ma page d'index.php mais cela ne fonctionne pas :

    Code:
    $language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    $language = $mysqli->real_escape_string($language);
    
    const LANGUAGES = ['be' => 'fr', 'ch' => 'fr', 'lu' => 'fr', 'fr' => 'fr', 'es' => 'es', 'pt' => 'pt''];
    $language = LANGUAGES[$language] ?? 'en';
    
    switch ($langue) { 
    case 'fr': 
    header ("Location: fr.monsite.com"); 
    break; 
    case 'es': 
    header ("Location:  es.monsite.com"); 
    break; 
    case 'pt': 
    header ("Location:  pt.monsite.com"); 
    break; 
    default: 
    header ("Location:  en.monsite.com"); 
    break; 
    } 
    Je serais très reconnaissant de la personne qui voudra m'aider.

    Merci d'avance
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 887
    J'aime reçus:
    74
    Question bête : sera-t-il possible de changer la langue une fois celle-ci forcée ?
     
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 080
    J'aime reçus:
    295
    Dans ton post précédent je t'ai répondu comment faire avec les méthodes built-in de PHP.
    Tes header location ne sauraient pas fonctionner comme ça, il faut qu'ils commencent par le protocole.
     
  4. FortTrafic
    FortTrafic WRInaute passionné
    Inscrit:
    11 Décembre 2012
    Messages:
    1 210
    J'aime reçus:
    18
    En htaccess (à tester, j'ai pas fait) :
    Code:
    RewriteEngine on
    
    RewriteCond %{HTTP:Accept-Language} (es) [NC]
    RewriteRule .* http://es.monsite.com [R,L]
    
    RewriteCond %{HTTP:Accept-Language} (fr) [NC]
    RewriteRule .* http://monsite.com [R,L]
    
    RewriteCond %{HTTP:Accept-Language} (pt) [NC]
    RewriteRule .* http://pt.monsite.com [R,L]
    
    # pour tous les autres utiliser l'anglais
    RewriteRule ^$ http://en.monsite.com [R,L]
    
    En fait ça risque de faire une redirection infinie, il faut surement rajouter des regles, bref changer le truc, mais voilà c'est juste pour te montrer que la condition HTTP:Accept-Language en htaccess est possible.
     
  5. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    UsagiYojimbo , Oui le but étant de rediriger dans un premier temps l'utilisateur dans son language avec HTTP_ACCEPT_LANGUAGE (exemple : fr.monsite.com) mais on garde la possibilité de modifier le language si besoin est.

    Spout, qu'est ce que tu veux dire par protocole ?
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 080
    J'aime reçus:
    295
    Mauvais:
    PHP:
    <span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />header&nbsp;</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:&nbsp;fr.monsite.com"</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault"></span>
    Bon:
    PHP:
    <span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />header&nbsp;</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:&nbsp;http://fr.monsite.com"</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault"></span>
     
  7. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Spout, ca ne fonctionne pas mieux, meme avec le http://

    Code:
    const LANGUAGES = ['be' => 'fr', 'ch' => 'fr', 'lu' => 'fr', 'it' => 'it', 'fr' => 'fr', 'es' => 'es', 'pt' => 'pt', 'cn' => 'cn', 'de' => 'de'];
    $language = LANGUAGES[$language] ?? 'en';
    
    switch ($langue) { 
    case 'fr': 
    header ("Location: http://fr.monsite.com"); 
    break; 
    case 'es': 
    header ("Location:  http://es.monsite.com"); 
    break; 
    case 'pt': 
    header ("Location:  http://pt.monsite.com"); 
    break; 
    default: 
    header ("Location:  http://en.monsite.com"); 
    break; 
    }
     
  8. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 906
    J'aime reçus:
    14
    Et comment ca se passe pour les moteurs de recherche?
     
  9. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 080
    J'aime reçus:
    295
    Essaie avec du code valide ;)
     
Chargement...
Similar Threads - Htaccess (ou php) Forum Date
Comment faire mon htaccess (ou autre solution) pour protéger dossier? URL Rewriting et .htaccess 5 Mai 2011
Récriture .htaccess (sous-domaine + répertoire) URL Rewriting et .htaccess 11 Août 2020
Le htaccess de WordPress réécrit une URL qui n'est pas censé être réécrite Administration d'un site Web 17 Juin 2020
Problème htaccess Développement d'un site Web ou d'une appli mobile 26 Mai 2020
Redirection dans .htaccess Développement d'un site Web ou d'une appli mobile 11 Mai 2020
htaccess ou noindex Netlinking, backlinks, liens et redirections 23 Janvier 2020
caractères spéciaux dans le Htaccess! Problèmes de référencement spécifiques à vos sites 17 Décembre 2019
Redirection htaccess vers 404 Netlinking, backlinks, liens et redirections 2 Décembre 2019
Redirection url et url mobile htaccess Netlinking, backlinks, liens et redirections 1 Décembre 2019
.htaccess avec variables ? Netlinking, backlinks, liens et redirections 11 Novembre 2019