Bonjour,
J'ai un site avec version fr & en géré par cookie. Le changement de langue fonctionne bien lorsque l'on effectue celui-ci à partir des adresses comme /index.html, /categorie.html. En utilisant l'url rewriting, avec des adresses créant un dossier virtuel comme /categorie/categorie.html, le changement de langue n'est pas pris en compte. En cliquant sur le bouton english pour changer de langue, il va indiquer l'adresse suivante, sans fonctionner : "/category/2-electronics.html?lang=en"
Cela ne fonctionne pas, uniquement lorsqu'il y a un dossier virtuel apparemment..
Voici mon fichier lang.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$lang = $_GET['lang'];
$myLang = $_COOKIE["myLang"];
if (!isset($_COOKIE["myLang"])){
    setcookie("myLang", "en", $expire,"/");
    $_COOKIE['myLang'] = 'en'; 
    include "lang/en.php";
    $myLang = "en";
    }else{
    include "lang/$myLang.php";
}
$expire = time()+60*60*24*30*12;
 
$languages = array('en' => 'en', 'fr' => 'fr');
 
if (array_key_exists($lang, $languages)) {
    include "lang/{$lang}.php";
    setcookie("myLang", "$lang", $expire);
    $myLang = $lang;
    header('Location: '.$_SERVER['REDIRECT_URL']);
}
?>
et mon .htaccess :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
RewriteEngine on
RewriteRule ^([a-zA-Z0-9\-]*)\.html$ /$1.php [L]
 
RewriteRule manual/([0-9]+)-([a-zA-Z0-9\-]+) manual.php?id=$1&url=$2
RewriteRule category/([0-9]+)-([a-zA-Z0-9\-]+) category.php?id=$1&url=$2
RewriteRule brand/([0-9]+)-([a-zA-Z0-9\-]+) brand.php?id=$1&url=$2
 
ErrorDocument 404 /404.php
Que dois-je spécifier pour que les dossiers virtuels soient pris en compte ?
Merci pour votre aide !