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:
    533
    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:
    12 011
    J'aime reçus:
    133
    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 183
    J'aime reçus:
    351
    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 202
    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:
    533
    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 183
    J'aime reçus:
    351
    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:
    533
    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 816
    J'aime reçus:
    18
    Et comment ca se passe pour les moteurs de recherche?
     
  9. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 183
    J'aime reçus:
    351
    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
Problème de htaccess chez Ionos URL Rewriting et .htaccess 12 Septembre 2022
Interdire une plage d'IP dans le .htaccess via "Deny from" URL Rewriting et .htaccess 9 Septembre 2022
Site non sécurisé avec htaccess Demandes d'avis et de conseils sur vos sites 27 Juillet 2022
Fichier .htaccess, Https et www Débuter en référencement 2 Juillet 2022
Redirect 410 HTACCESS pour toutes les pages d'un répertoire URL Rewriting et .htaccess 1 Juillet 2022
Redirection 404 via le .htaccess / pb avec les liens relatifs Débuter en référencement 5 Mai 2022
WordPress Petit souci de redirection htaccess URL Rewriting et .htaccess 3 Mai 2022
htaccess vs modifications site, quelle stratégie ? Merci URL Rewriting et .htaccess 10 Mars 2022
Redirection url htaccess Développement d'un site Web ou d'une appli mobile 14 Janvier 2022
Priorité entre le serveur et le fichier Htaccess URL Rewriting et .htaccess 4 Janvier 2022
importance de l'ordre des instructions dans un fichier htaccess URL Rewriting et .htaccess 3 Janvier 2022
Variables SetEnv dans un fichier htaccess URL Rewriting et .htaccess 25 Décembre 2021
htaccess qui fonctionne partout sauf sur 1 seul PC URL Rewriting et .htaccess 28 Juillet 2021
modification fichier htaccess URL Rewriting et .htaccess 25 Juillet 2021
Protection de site web : quel code ajouter dans htaccess ? URL Rewriting et .htaccess 5 Mars 2021
Blocage d'un visiteur via le fichier .htaccess URL Rewriting et .htaccess 5 Janvier 2021
sécurité avec htaccess URL Rewriting et .htaccess 18 Décembre 2020
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