1

We have sitemap.xml with URLs and google analytics started to throw errors like this not available, not found, etc...

We have English and Croatian store. When you try to open (while on Croatian store) for example this url it will be a 404 page.

Switch to English store: it works fine.

Anyone having idea what to do?

PS. Client don't want store code in URL

4

2 回答 2

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
于 2013-09-10T16:59:27.960 回答
0

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

你可以 :

每种语言使用 1 个子域,或者将默认语言/商店设置为英语或更精确,例如按来源过滤用户(如果您来自搜索引擎并且您有英语网址,则转到英语商店)。

等等

于 2013-07-31T12:35:11.953 回答