繁体   English   中英

编写Magento GeoIP商店重定向,共享链接出现问题

[英]Writing a Magento GeoIP store redirect, problems with sharing links

我目前有一个Magento项目,客户需要一个相当简单的GeoIP解决方案,我们尝试了一些模块,但是所有模块都很笨拙,混乱并且在其他地方引起了错误。

我最终使用GeoIP php库和.dat文件完成了此操作,并只是在index.php中创建了一条语句,将其他用户重定向到/ us和/ eu文件夹,这些文件夹具有用于加载相关商店的index.php文件。 看起来像这样

/########### GEOIP ############//
$geoipPath = 'includes/geoip.inc';
include($geoipPath);

$gi = geoip_open("includes/GeoIP.dat",GEOIP_STANDARD);

$ip = $_SERVER['REMOTE_ADDR'];
$country_code = geoip_country_code_by_addr($gi, $ip);
$euArray = array('DE','FR','AT','BE','HR','CY','CZ','DK','EE','FI','GR','HU','IS','IE','IT','LU','MD','MC','NL','NO','PL','PT','RO','RU','SK','SI','ES','SE','CH','UA','VA');
if(strtoupper($country_code) == "US"){
    $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'us_site';
    $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'website';

    Mage::run($mageRunCode, $mageRunType);

}elseif(in_array(strtoupper($country_code),$euArray)){
    $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'eu_site';
    $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'website';

    Mage::run($mageRunCode, $mageRunType);

}else{
    $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
    $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

    Mage::run($mageRunCode, $mageRunType);
}

除了发送新闻通讯时,以及链接太http://example.com/our-new-offers.html时 ,这都很好

当美国/欧盟客户单击此链接时,他们只是被重定向到主页,有人知道解决该问题的方法吗?

谢谢

如果您在子目录上设置了其他存储,是否不能仅将它们重定向到其他存储并附加URI?

将您的代码放在上面:

if(strtoupper($country_code) == "US"){
    header('Location: http://example.com/us' . $_SERVER['REQUEST_URI']);    
}
elseif(in_array(strtoupper($country_code),$euArray)){
    header('Location: http://example.com/eu' . $_SERVER['REQUEST_URI']);
}else{
    $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
    $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

    Mage::run($mageRunCode, $mageRunType);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM