对于在magento中的多商店设置,我已经从configure->manage store like 创建了一个网站名称、商店名称和商店视图名称
store: de
name: de
code: de
website:de
还更改了新创建的商店表单configure->web部分的基本url,最后我在umask(0)之后的index.php中添加了这些行;
if ($_SERVER['HTTP_HOST'] == "localhost/project_name/de" || $_SERVER['HTTP_HOST'] == "http://localhost/project_name/de"){
$_SERVER["MAGE_RUN_CODE"] = "de";
$_SERVER["MAGE_RUN_TYPE"] = "de";
}
但是当我要浏览url时http://localhost/project_name/de它显示404错误。
请给我一个解决方案
感谢
您是否将index.php复制到您创建的新目录中?修改后的代码应该在新的index.php.中
此外,您应该更改index.php文件中的Mage.php路径。
$mageFilename = '/root/directory/app/Mage.php';
还有,你把环境变量放在/de文件夹中了吗?htaccess文件:
SetEnvIf Host .*sitename.* MAGE_RUN_CODE=de
SetEnvIf Host .*sitename.* MAGE_RUN_TYPE=de
PS:用您的域名更改sitename
。
或者只需更改子目录index.php文件如下:
Mage::run($mageRunCode, $mageRunType);
至
Mage::run('de', 'de');
$_SERVER['HTTP_HOST']
变量将只包含服务器的域名(即HTTP请求中Host标头的内容),在这种情况下为localhost。如果你想在一个子目录中设置一个不同的存储,请参阅这篇博客文章,了解一个基于.htaccess的解决方案,用于设置镜像运行代码。
只需在magento根目录中复制两个文件就非常简单。并粘贴到您想要的位置(mysite.com)文件夹
这些文件是.htaccess.sample和index.php.sample
将两个文件重命名为.htaccess和index.php
打开index.php并进行编辑。
$mageFilename=MAGENTO_ROOT'/app/Mage.php’;
to
$mageFilename='/root/mysite/app/Mage.php';
编辑这两行
/*商店或网站代码*/$mageRunCode=isset($_SERVER['MAGE_RUN_CODE'])$_服务器['MAGE_RUN_CODE']:'';
/*运行商店或运行网站*/$mageRunType=isset($_SERVER['MAGE_RUN_TYPE'])$_SERVER['MAGE_RUN_TYPE']:'存储';
如果将$mageRunType设置为"store"您必须将$mageRunCode设置为"存储代码"
提供更多详细信息
http://www.samdoit.com/news/magento-multi-store
您可能需要在URL中设置System>Config>Web>Use Store Code。上次我尝试这样做时,它开箱即用,无需触摸index.php或.htaccess