Проблема
У нас есть веб-сайт ccTLD (example.de) с подпапками для разных языков, который, очевидно, необходимо переместить на example.com для правильного выбора языка. Так как example.com принадлежит компании родительской группы, которая до сих пор 301 посещает всех посетителей us-group.com и не хочет разрешать нам 301ing example.de для example.com и отказываться от их существующих 301s на us-group.com, нам нужно немного поработать.
Задание
Соревнование
Мы полагали, что многие посетители из Америки используют прокси-серверы, поэтому перенаправление по IP не будет возможным. Us-group.com просто потеряет большую часть своего предыдущего трафика.
Можно ли перенаправить их с помощью сценария PHP с сочетанием браузера и языка системы (например, EN-US, FR-CA, EN-CA, ES-AR, PT-BR и т. Д.)? Если так, как это могло быть сделано?
Дополнительные мысли: Очевидно, это не единственное, что мы рассматриваем, чтобы сделать. Прежде чем перенаправить посетителей из Америки, мы бы:
Я использую что-то похожее на это, это основано на языке браузера, а не на языке системы в любом случае.
if(!isset($_COOKIE['language'])){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
switch($lang){
case "en-US":
$rURL = "www.example.com";
break;
default:
$rURL = "www.example.de";
}
if(isset($rURL)){
setcookie("language", $rURL);
header("HTTP/1.1 303 See Other");
header('Location:' . $rURL);
}
}
Конечно, вы можете изменить время хранения куки и так далее 🙂
ОБНОВИТЬ
Если вы хотите перенаправить пользователя обратно на исходный / обнаруженный сайт (если они по ошибке или другим способом вернутся не в тот домен, вы можете просто использовать
if(!isset($_COOKIE['language'])){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
switch($lang){
case "en-US":
$rURL = "www.example.com";
break;
default:
$rURL = "www.example.de";
}
if(isset($rURL)){
setcookie("language", $rURL);
header("HTTP/1.1 303 See Other");
header('Location:' . $rURL);
}
}else{
header("HTTP/1.1 303 See Other");
header('Location:' . $_COOKIE['language']);
}
Других решений пока нет …