仅在 EN 语言、ru 上错误或正确重定向到 /ru/ 时重定向太多


<?php
$sites = array(
    "en" => "http://webzp.com.ua/",
    "ru" => "http://webzp.com.ua/ru",
    "be" => "http://webzp.com.ua/be",
    );
// Get 2 char lang code
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// Set default language if a '$lang' version of site is not available
if (!isset($sites[$lang])) 
    {
$lang = ‘en’;
    }
// Finally redirect to desired location
header('Location: ' . $sites[$lang]);
exit ;
?>

所以在 ru 上或它工作正常并重定向到/ru/,但在"en"上显示错误"重定向太多"请帮助,谢谢。

将用户重定向到http://DOMAIN/lang这一事实不会更改浏览器发送HTTP_ACCEPT_LANGUAGE变量的值。

您可以更改代码以检查 URL 中的语言HTTP_ACCEPT_LANGUAGE 的值。

您还应该考虑何时不重定向用户(否则您将像现在一样拥有无限循环)。

最新更新