对不起我的近似英语。
我正在使用此方法根据用户语言提供重定向,并将数据保存在cookie中: http://dallascao.com/en/use-cookies-to-remember/
但是,如果我决定选择域根作为默认语言,则重定向不起作用,如下所示:
<?php $lang=$_COOKIE["lang"];
switch ($lang) {
case 'en':
header('Location: http://hawalove.com/');
break;
case 'fr':
header('Location: http://www.hawalove.com/fr');
break;
#Get the default language of the browser if no cookies are found.
default:
$lang = getDefaultLanguage();
switch ($lang) {
case 'fr' :
header('Location: http://www.hawalove.com/fr');
break;
default:
header('Location: http://hawalove.com/');
break;
}
break;
}
?>
你能帮助我实现这个目标吗?我希望在root(mydomain.com)上有英文版,在mydomain.com/fr上有法文版。
感谢。
答案 0 :(得分:0)
我猜“不起作用”意味着“为英语使用者提供无限重定向循环”。
当您选择的语言是英语时,您只需要一种不重定向的方法。添加一个关联数组,将支持的语言映射到重定向位置,然后执行以下操作:
$lang
抓取$_COOKIE["lang"]
。$lang
不是支持的语言(或者甚至没有设置),那么$lang = getDefaultLanguage()
。$lang
不是'en'
,则重定向,否则显示英文主页,而不进行重定向。您可以将关联数组用于(2)和(3)。基本策略很简单:如果语言最终成为英语,则不要重定向。一旦拥有有效的语言,您可能想要设置语言cookie。