首页 文章

Magento在1个域上设置了2个商店,在1个安装时设置了1个子域

提问于
浏览
1

我知道Magento社区论坛会发布这个更好的地方,但每次我在那里发帖都没有人回答 .

首先让我解释一下我的设置 . 我在我的主站点上安装了1个magento 1.8,我们称之为domain1.com . 这家商店工作正常,几乎准备好了 . 现在我需要子域上的另一个商店,我们的电话是store.domain2.com .

我查了很多论坛和教程,但我仍然无法弄清楚我的问题是什么 . 这是我到目前为止所做的 .

步骤1,我创建我的子域store.domain2.com并使其指向我的magento文件夹,即我的服务器上的domain1 / magento .

第2步,我创建了我的新根类别我称为domain2.com

第3步,我创建了我的新网站,我也称之为domain2.com

第4步,我创建了我的新商店我称为DOMAIN2,我为在步骤3中创建的网站创建了默认商店 . 此商店的根类别是在步骤2中创建的商店 .

第5步,我为语言创建了几个商店视图,所有都启用了 .

步骤6,在系统 - >配置 - > Web选项卡中,在当前配置范围部分中选择我新创建的网站后,我更改https://store.domain2.comhttp://store.domain2.com的安全和不安全的基本URL

步骤7,在domain1 / magento文件夹中的.htaccess文件中,我在文件末尾添加这些行:SetEnvIf Host domain1.com MAGE_RUN_CODE = base SetEnvIf Host domain1.com MAGE_RUN_TYPE = website SetEnvIf Host ^ domain1.com MAGE_RUN_CODE = base SetEnvIf主机^ domain1.com MAGE_RUN_TYPE =网站

SetEnvIf Host store\.domain2\.com MAGE_RUN_CODE=domain2
SetEnvIf Host store\.domain2\.com MAGE_RUN_TYPE=website
SetEnvIf Host ^store\.domain2\.com MAGE_RUN_CODE=domain2
SetEnvIf Host ^store\.domain2.com MAGE_RUN_TYPE=website

CODE = base是因为我为我的第一个商店保留了默认值CODE = domain2是因为这是我给domain2.com网站的代码名称(在magento中)

现在的问题是,当我去store.domain2.com时,domain1.com的商店出现了,我无法弄清楚如何让我的第二个商店出现 .

另外,我将domain2.com设置为默认只是为了查看结果,我的两个网站都显示没有内容的magento框架,即使我为第二个商店创建了类别 .

任何人都可以帮我这个吗?

谢谢

1 回答

  • 1

    我将 store.domain2.com 称为 sub.domain2.com ,以避免混淆商店和子域名 .

    如果您的主要商店位于 domain1.com 并且您需要 sub.domain2.com 作为您的第二家商店,则需要确保您可以从 sub.domain2.com 文件夹访问 domain1.com 的Magento核心文件 . 如果有可能那么这些是我的更正:

    Step 1 ,在 sub.domain2.com 公用文件夹中创建符号链接,指向'domain1.com'文件夹中的Magento核心文件 . 不要指向整个文件夹,因为您需要自定义 index.php.htaccess . 转到 sub.domain2.com 的公共目录并输入:

    ln -s /existing/magento/path/public_html/skin /pointing/to/existing/path/public_html/skin
    

    交换路径以适合您的情况 . 然后对核心安装中的所有文件夹执行相同操作 .

    Step 6a ,进入系统>配置>常规> Web> URL选项,并将'Auto-redirect to Base URL'设置为'No' .

    Step 7 ,删除 . 将 index.php.htaccess 复制到 sub.domain2.com 文件夹 - 在步骤1中创建符号链接的文件夹 . 现在修改这些文件

    • .htaccess,在文件末尾添加:
    SetEnvIf Host www.sub.domain2.com MAGE_RUN_CODE=domain2
    SetEnvIf Host www.sub.domain2.com MAGE_RUN_TYPE=store
    SetEnvIf Host ^sub.domain2.com MAGE_RUN_CODE=domain2
    SetEnvIf Host ^sub.domain2.com MAGE_RUN_TYPE=store
    

    其中 domain2sub.domain2.com 下新视图的名称 . 这些变量稍后将在 index.php 文件中使用 .


    旁注:如果您想在子文件夹中设置商店,则需要使用此 .htaccess 代码:

    RewriteCond %{REQUEST_URI} ^/fr/$
    RewriteRule .* - [E=MAGE_RUN_CODE:domain2]
    RewriteCond %{ENV:REDIRECT_MAGE_RUN_CODE} (.+)
    RewriteRule .* - [E=MAGE_RUN_CODE:%1]
    

    或者只是在 index.php 中设置它们


    • index.php(可选)

    如果在修改 .htaccess 之后某些内容无效,请直接修改 index.php 中的最后3行代码:

    /* Store or website code */
    // $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
    $mageRunCode = 'domain2';
    
    /* Run store or run website */
    // $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
    $mageRunType = 'store';
    
    Mage::run($mageRunCode, $mageRunType);
    

    如果您对符号链接有任何问题,请在此文件的顶部修改 MAGE_ROOT 常量 . 如果没有,你应该完成 .

相关问题