我们有带有网址的sitemap.xml,谷歌分析开始抛出this不可用,找不到等错误......
我们有英语和克罗地亚商店。 当您尝试打开(在克罗地亚商店时)例如url 这将是一个404页。
切换到英国商店:它运作正常。
任何人都知道该怎么做?
PS。客户端不希望URL中存储代码
答案 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个子域名 要么 将默认语言/商店设为英语 要么 做一些更精确的事情,比如按来源过滤用户(如果你来自搜索引擎,你有英文网址,那就去英国商店)。
等