我使用以下PHP脚本作为我的网站的索引.
此脚本应包含特定页面,具体取决于浏览器的语言(自动检测).
此脚本不适用于所有浏览器,因此它始终包含index_en.php
任何检测到的语言(问题的原因很可能是某些Accept-Language标头未被考虑的问题).
能否请您建议一个更强大的解决方案?
<?php
// Open session var
session_start();
// views: 1 = first visit; >1 = second visit
// Detect language from user agent browser
function lixlpixel_get_env_var($Var)
{
if(empty($GLOBALS[$Var]))
{
$GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?
$GLOBALS['_SERVER'][$Var] : (!empty($GLOBALS['HTTP_SERVER_VARS'][$Var])) ? $GLOBALS['HTTP_SERVER_VARS'][$Var]:'';
}
}
function lixlpixel_detect_lang()
{
// Detect HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.
lixlpixel_get_env_var('HTTP_ACCEPT_LANGUAGE');
lixlpixel_get_env_var('HTTP_USER_AGENT');
$_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);
$_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);
// Try to detect Primary language if several languages are accepted.
foreach($GLOBALS['_LANG'] as $K)
{
if(strpos($_AL, $K)===0)
return $K;
}
// Try to detect any language …
Run Code Online (Sandbox Code Playgroud) 我想将我的网站国际化,以便可以使用多种语言访问.将自动在请求数据中检测语言设置,并且可以在用户的设置中覆盖/存储在会话中.
我的问题是关于如何根据页面的URL显示基于语言的同一页面的各种版本.假设我们只是查看索引页面http://www.example.com/
,默认为英文.现在,如果讲法语的人加载索引页面,我应该只保留URL http://www.example.com/
,还是应该将其重定向到http://www.example.com/fr/
?
我试图弄清楚这在SEO方面有什么好处或后果.我不希望该网站的法语版本显示在google.com上,如果它阻止相同页面的英文版本显示在那里,但我希望它显示在google.fr中.
什么是构建包含导航的html的推荐方法,因此它仍然是SEO'和可访问的.
例如,结构应该更像文档的结构:
要么:
显然CSS用于控制布局,但是机器人和屏幕阅读器忽略了CSS.