我想这样做:
if (user from other website, like google, or input our website URL directly in the browser)
{
//redirect according to browser languge
if (!preg_match('/en-US/', $_SERVER['HTTP_USER_AGENT']))
{
wp_redirect("http://cn.gearor.com");
}
}
我不知道如何编写第一个if语句,我不知道如何获取URL,以及如何检查它是我的网站或其他网站。如果是我的网站,什么都不做,如果不是我的网站,请检查浏览器是否为英文,如果不是,请重定向到http://cn.gearor.com
答案 0 :(得分:2)
$_SERVER['HTTP_REFERER']
是指向检查页面的完整网址。虽然这是了解你所寻找的东西的唯一途径,但并不能保证这一点。
此外,您可能需要检查$_SERVER['HTTP_ACCEPT_LANGUAGE']
而不是$_SERVER['HTTP_USER_AGENT']
以获取用户的语言。
这是full reference to the $_SERVER
超全球数组。您应该检查密钥,尤其是那些以HTTP_
开头的密钥。
答案 1 :(得分:2)
你想要这样的东西:
if (!preg_match('%your_domain.tld%i', $_SERVER['HTTP_REFERER']))
{
if (!preg_match('/en-us/i', $_SERVER['HTTP_ACCEPT_LANGUAGE']))
// .. do your stuff here.
}
我更改了语言检查以使用HTTP_ACCEPT_LANGUAGE,并且也不区分大小写(Opera使用en-US,其中Firefox和IE在我的测试中使用en-us)。
如果您要检查DEFAULT语言,也可以考虑使用/^en-us/i
。语言字符串可以包含多种语言,逗号分隔。