1 Like

根据浏览器语言重定向访客

gearor gadgets tech mag 根据浏览器语言重定向访客

最近我开了一个新网站,Gearor.com,以报导科技新闻为主。我为这个网站设计了中文(cn.gearor.com)及英文版本,所以我希望做到,当用户访问时,判断用户是否使用中文浏览器,若是便将用户带到中文页面。

一开头,我直观地在主页将所有中文浏览器转到中文页面。这样做有一个问题:就是在中文页面内,我放置了一条返回英文页面的连结,若中文用户想看英文内容,可按此连结。当我加入转向程式,即使点击了这条连结,还是会被带回到中文页面,变成中文用户到不了英文的主页,这是不能接受的。

解决的方法也不难,只要在转向程式加入判断,不对来源网站为本站的用户进行转向。问题是要实现这个方法却不容易,我试过JavaScript,亦试过用SESSION的方法,都未能满足。最后我将问题放到StockOverFlow上,终于找到满意的解决方法。顺带一提,StockOverFlow真是一个非常棒的网站,那里有大量优秀的程式员,而且大家都很乐意为你解答疑问。以下是我修改过的程式,目前在Gearor.com上使用:

if (!preg_match('%gearor.com%i', $_SERVER['HTTP_REFERER']))
	{
		if (!preg_match('%cn.gearor.com%i', $_SERVER['HTTP_REFERER']))
		{
			if (preg_match('/zh-cn/i', $_SERVER['HTTP_ACCEPT_LANGUAGE']))
				wp_redirect('http://cn.gearor.com');
		}
	}

如果你也在设计多国语言网站,或许这段程式也能帮到你,当然,若你有更好的方法,欢迎与我分享。


欢迎到我们的论坛发表你的看法

关于 Zack

喜欢WordPress,WordPress主题设计学习中; 关注网络,特别是Web2.0的发展.英文网志:http://ZackLive.com
本篇发表于 网页设计 并标签为 , , , 。将永久炼结加入书签。

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

根据浏览器语言重定向访客 有一则回应

  1. 通告: Zack Live

留下评论

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>