url rewriting et changement de langue
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:
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:
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 !