Magento URL翻译“bug”?

时间:2013-07-31 10:37:15

标签: magento translation store analytics sitemap.xml

我们有带有网址的sitemap.xml,谷歌分析开始抛出this不可用,找不到等错误......

我们有英语和克罗地亚商店。 当您尝试打开(在克罗地亚商店时)例如url 这将是一个404页。

切换到英国商店:它运作正常。

任何人都知道该怎么做?

PS。客户端不希望URL中存储代码

2 个答案:

答案 0 :(得分:1)

经过长时间与客户交谈: 网址必须保持原样。没有后缀没有前缀, 没有子域名等。

检查了其他magento项目,它们都没有相同的行为。 :S 很可能是一些插件导致了这种情况。

我提出了简单的解决方案,但它没有用。 基本的想法是通过$ _SERVER检查请求,检查 URL并确定要在index.php中加载哪个商店

Mage::run($storeID);

但没有发生任何事...... 同样的问题。 这是另一段代码,但我不喜欢它(它有效,但它很愚蠢)。:

$link=mysql_connect("localhost","username","password");
mysql_select_db("database",$link);


$path= substr($_SERVER['REQUEST_URI'],1)  ;// remove starting slash
$sql = "SELECT store_id  FROM  `core_url_rewrite` WHERE request_path = '{$path}'";
$rez= mysql_fetch_object(mysql_query($sql,$link));
if(!empty($rez)){
    // found the url and storeID
    $store= $rez->store_id;
    if($store != Mage::app()->getStore()->getId()){ 
        // is store == current store?
        //Mage::app()->setCurrentStore($store);
        if($store==1) $storeID="hr"; else $storeID="en";
        $_SERVER['REQUEST_URI']=$_SERVER['REQUEST_URI']."?___store=".$storeID;
        // Mage::run($storeID);   // doesn't work.
        header("Location: ".$_SERVER['REQUEST_URI']);

        die; // just in case
    }   
}
Mage::run($mageRunCode, $mageRunType); //default exec

答案 1 :(得分:0)

您的2种语言网站使用相同的域名。这导致了问题。

你可以:

每种语言使用1个子域名 要么 将默认语言/商店设为英语 要么 做一些更精确的事情,比如按来源过滤用户(如果你来自搜索引擎,你有英文网址,那就去英国商店)。