Php 错误:仅在EN语言、ru或正确重定向到/ru/时重定向过多
因此,在ru或be上,它可以正常工作并重定向到/ru/,但在“en”上显示错误“重定向太多”,请帮助,谢谢。您正在将用户重定向到Php 错误:仅在EN语言、ru或正确重定向到/ru/时重定向过多,php,.htaccess,redirect,Php,.htaccess,Redirect,因此,在ru或be上,它可以正常工作并重定向到/ru/,但在“en”上显示错误“重定向太多”,请帮助,谢谢。您正在将用户重定向到http://DOMAIN/lang不会更改浏览器发送的变量HTTP\u ACCEPT\u LANGUAGE的值 您可以更改代码以检查URL中的语言和HTTP\u ACCEPT\u language的值 您还应该考虑何时不重定向用户(否则您将像现在一样有无限循环)。您将用户重定向到http://DOMAIN/lang不会更改浏览器发送的变量HTTP\u ACCEPT\u
http://DOMAIN/lang
不会更改浏览器发送的变量HTTP\u ACCEPT\u LANGUAGE
的值
您可以更改代码以检查URL中的语言和HTTP\u ACCEPT\u language
的值
您还应该考虑何时不重定向用户(否则您将像现在一样有无限循环)。您将用户重定向到
http://DOMAIN/lang
不会更改浏览器发送的变量HTTP\u ACCEPT\u LANGUAGE
的值
您可以更改代码以检查URL中的语言和HTTP\u ACCEPT\u language
的值
你还应该考虑什么时候不重定向用户(否则你会像现在一样有无限循环)。对不起,以前没有做过这样的事情,你能做一个例子或者说我可以在哪里阅读如何正确地做吗?对不起,以前没有做过这样的事情,请你做一个样品,或者告诉我在哪里可以阅读如何正确地做?
<?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 ;
?>