Php 将用户重定向到特定国家/地区的子域

Php 将用户重定向到特定国家/地区的子域,php,wordpress,redirect,Php,Wordpress,Redirect,我有一个网站www.xyz.com,其中包含特定国家X的内容。此外,我还有另一个网站目标,位于同一个域的子域上,如subdomain.xyz.com,指向不同的国家Y 我可以使用任何免费的地理ip数据库和一些php脚本来实现重定向,我成功地做到了这一点,但现在的问题是 来自Y国的访问网站www.xyz.com的人被重定向到subdomain.xyz.com,但他可能想查看www.xyz.com,它再次将他们重定向到subdoamin.xyz.com 我希望这是谷歌的方式,因此,如果一个人从阿联酋

我有一个网站www.xyz.com,其中包含特定国家X的内容。此外,我还有另一个网站目标,位于同一个域的子域上,如subdomain.xyz.com,指向不同的国家Y

我可以使用任何免费的地理ip数据库和一些php脚本来实现重定向,我成功地做到了这一点,但现在的问题是

来自Y国的访问网站www.xyz.com的人被重定向到subdomain.xyz.com,但他可能想查看www.xyz.com,它再次将他们重定向到subdoamin.xyz.com

我希望这是谷歌的方式,因此,如果一个人从阿联酋访问google.com被重定向到google.ae,但如果他们单击go转到google.com,他们会被重定向到google.com,没有任何问题

我需要为我的站点实现这一点

该网站位于wordpress中。请给我建议最好的解决办法

好,这是我使用过的代码。

?>


您建议我在此

中进行哪些更改在您的Web服务器上使用重定向(即,如果您使用Apache),或通过javascript(重定向功能)将其插入页面

如果您使用的是Apache,如果您使用MaxMind获取访问国家/地区,则可以使用mod_alias配置重定向(您可以使用其他服务,我认为这方面没有问题),即:

更多信息:

您还可以通过PHP获取客户端地址,并构建如下javascript函数(但Apache解决方案更优雅):


使用referer检查:如果他们到达www.xyz.com并且referer不是国家/地区站点,则重定向到国家/地区站点

如果他们在国家/地区网站上单击“转到www.xyz.com”,则引用者将是country.xyz.com,然后您不会重定向

您还可以使用cookie来存储客户在这方面的偏好

解释Referer头字段,并说明如何在php中使用它

编辑:作为替代方案-因为LAR声明用户或路径上的某个东西可以停用/删除标题-您可以在www.xyz上使用虚拟“登录页”,提示服务器访客来自国家/地区服务器:

<a href="www.xyz.com/fromcountryserver.php">Go to xyz</a>

或者,添加一个请求变量,指示浏览器来自国家/地区服务器。愚蠢的例子只是为了表明意图

<a href="www.xyz.com/index.php?comingfrom=countryserver">Go to xyz</a>


或者这些技术的混合。还有一点工作要做,但除非有疯子在客户端重写URL,否则它应该一直都能工作。

我相信这只是谷歌用来玩这个愚蠢把戏的一个cookie

我建议你在HTTP嗅探器打开的时候导航到谷歌。这是一项极具教育意义的事业

  • 安装GeoIP PHP扩展
  • 检测用户所在国家/地区
  • 如果用户登陆错误站点,则重定向用户

  • 你可以更具体一点,或者如果可能的话,请分享代码它应该如何从美国进入加拿大网站?你可以把它作为配置放在你的主网站上,但不能放在子网站上。这一切都取决于您希望如何处理对不同站点的访问。@mcomghall您所解释的是基于原始ip的自动重定向,这正是他想要避免的/trap/antract。假设您将xyz.com作为主站点,并将您的重定向到.xyz.com。您可以将我提供的配置作为配置放在xyz.com上,并允许任何人随时访问.xyz.com,只需在您的Apache配置上创建不同的虚拟站点(或将它们放在不同的服务器上)。我知道cookie并不比referer更可靠,但referer并不是解决问题的方法referer有问题,有些防火墙甚至用户会停用它。@Jimin好吧,我想说3xx重定向同样重要。所以,最好看看复杂的图片,看看特定的HTTP是如何工作的
    function redir()
    {
    if(checkCountryViaIp(ip) == countryx)
    {
        window.location = "countryxpage.php"
    }
        //etc...
    }
    
    <a href="www.xyz.com/fromcountryserver.php">Go to xyz</a>
    
    <a href="www.xyz.com/index.php?comingfrom=countryserver">Go to xyz</a>