是否可以通过编程方式在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中的脚本代替各个站点子目录。任何帮助表示赞赏。
答案 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