【问题标题】:Magento URL translation "bug"?Magento URL 翻译“错误”?
【发布时间】:2014-01-25 13:28:06
【问题描述】:

我们有带有 URL 和谷歌分析的 sitemap.xml 开始抛出错误,如 this 不可用、未找到等......

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

切换到英文商店:效果很好。

有人知道该怎么做吗?

附言。客户不希望在 URL 中存储代码

【问题讨论】:

    标签: magento translation store analytics sitemap.xml


    【解决方案1】:

    与客户长时间交谈后: URL 必须保持原样。无后缀无前缀, 没有子域等。

    检查了其他 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
    

    【讨论】:

      【解决方案2】:

      您的 2 种语言网站在同一个域名上。这导致了问题。

      你可以:

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

      等等

      【讨论】:

      • hmmm 子域听起来不错! (在ATM机上打脸,为什么我不记得了)选项2:嗯,用户的问题无关紧要,主要问题是谷歌爬虫)。将采用第一种解决方案并发布结果;)谢谢
      猜你喜欢
      • 1970-01-01
      • 2010-11-29
      • 2022-10-15
      • 2014-12-07
      • 2015-04-19
      • 1970-01-01
      • 2013-08-31
      • 2023-03-03
      相关资源
      最近更新 更多