根据浏览器发送语言自动301跳转页面

因为之前在做seo的时候非常喜欢用301,只是不知道蜘蛛发送的是什么客户端信息,所以不一定对搜索引擎有利。

<?php
$LG=$_SERVER[‘HTTP_ACCEPT_LANGUAGE’];
if (preg_match(‘/^[zZ][hH]/’, $LG)) {
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://xu-kai.com/cn”);
exit();}
else {
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://xu-kai.com/en”);
exit();}
?>

HTTP_ACCEPT_LANGUAGE是服务器所接收的语言,一般来说是服务器的语言。在网站可以看到,firefox在安装多个语言包的时候,会发送多个语言信息,但是首选的肯定是在第一个。

如果有中国人用了英文浏览器,那就是跳转到英文。但是还可以在不同语言版本的网站上提供语言选项,让他们自己跳转过去。

当中用了正则表达式判断是否包含“zh”,因为不管是简体中文还是繁体中文发送过来的信息前两个字母肯定是“zh”的,这次做的网站仅仅是简体中文和英文两个版本。所以就不考虑简体中文和繁体中文的区别,非中文统统跳转到英文。

提醒各位,以后在发代码的时候注意博客的过滤系统,用转义字符发出来,不然新手看了是一头雾水,死活用不上,活受罪。

*2010年8月24日更新代码,主要加入了正则表达式的忽略大小写和zh所处字符限定,保证跳转准确性

发表回复

您的电子邮箱地址不会被公开。