Magento多网站控制器

时间:2011-06-07 02:53:43

标签: magento web store controllers

是否可以通过编程方式在Magento中发送网站?目前,我的网站根目录中有一个名为/ sites的目录。在这个目录中,我有每个网站的子目录,例如site_a,site_b,site_c。然后每个站点子目录都有一个带有相应运行代码的.htaccess和index.php,例如:

$mageFilename = '../../app/Mage.php';
require_once $mageFilename;    
Mage::run("site_b", "website");

在/ websites / site_b中的index.php中。虽然这有效,但我确实希望避免在文件系统中进行文件管理。任何人都可以提出最佳方法的建议吗?也许是/ sites中的脚本代替各个站点子目录。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

您可以访问php中的$ _SERVER变量,您可以使用它们来确定Mage :: run(“whatever”,“website”);打电话,例如:

$whatever=$_SERVER['condition/url/whatever'];

// or use some cookies 

if (isset($_COOKIE['dev'])) $whatever=$_COOKIE['dev'];


switch($whatever)
{ case "example.com":
  case "www.example.com":
    $_SERVER['MAGE_RUN_CODE'] = "example";
    $_SERVER['MAGE_RUN_TYPE'] = "website";
    break;
  case "dev":
  case "test.com":
    $_SERVER['MAGE_RUN_CODE'] = "test";
    $_SERVER['MAGE_RUN_TYPE'] = "website";
  default:
    $_SERVER['MAGE_RUN_CODE'] = "live";
    $_SERVER['MAGE_RUN_TYPE'] = "website";
}
Mage::run($_SERVER['MAGE_RUN_CODE'], $_SERVER['MAGE_RUN_TYPE']);

通过这种方式,您只需要一个代码库以及Magento后端中正确配置的设置即可路由到您的不同商店。

答案 1 :(得分:0)

您可以处理.htaccess文件中的所有内容 我看起来像这样:

#SetEnvIf Host www\.lenjerii\.com MAGE_RUN_CODE=base
#SetEnvIf Host www\.lenjerii\.com MAGE_RUN_TYPE=website
#SetEnvIf Host ^lenjerii\.com MAGE_RUN_CODE=base
#SetEnvIf Host ^lenjerii\.com MAGE_RUN_TYPE=website

#SetEnvIf Host www\.wildfashion\.ro MAGE_RUN_CODE=wildfashion
#SetEnvIf Host www\.wildfashion\.ro MAGE_RUN_TYPE=website
#SetEnvIf Host ^wildfashion\.ro MAGE_RUN_CODE=wildfashion
#SetEnvIf Host ^wildfashion\.ro MAGE_RUN_TYPE=website

此解决方案会删除其他网站的所有其他文件夹。

答案 2 :(得分:-1)

如果我理解正确,您需要的是一些符号链接:在每个子目录中,创建指向原始安装的符号链接。 IE:ln -s ../app/ ./app
看看这个tutorial