如何让Magento明白我们在子域?

时间:2016-01-17 09:29:15

标签: magento cookies

需要你的帮助。我使用Magento 1.9.2.1制作了一个多视图(domain.com& sub.domain.com)商店。一切都好!但!当您尝试获取子域时,magento会向您显示主域中的信息。 另一方面,当您尝试通过主域获取子域时(使用GET的语言切换器“?___ store = viewSubDomainCode& ___ from_store = viewDomainCode”)。 原因是我想设置Cookies。 如果我的请求直接http://sub.domain.com,如何让Magento设置cookie。 子域的Index.php:

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : 'code of my WEBSITE';

/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'website';

Mage::run($mageRunCode, $mageRunType);

重要的是:我需要两个域的COOKIES(一个购物车)。

简单地说:我想设置子域的CurrentStore!

1 个答案:

答案 0 :(得分:0)

首先,您需要正确设置Cookie以使其在域/子域中工作: https://magento.stackexchange.com/questions/68070/whats-the-correct-cookie-config-for-a-magento-site-split-across-multiple-instan

关于商店切换到正确的视图,您需要.htaccess修改:

RewriteCond %{HTTP_HOST} www\.domain1\.com [NC]
RewriteRule .* - [E=MAGE_RUN_CODE:domain1_com]
RewriteCond %{HTTP_HOST} www\.domain1\.com [NC]
RewriteRule .* - [E=MAGE_RUN_TYPE:website]

RewriteCond %{HTTP_HOST} www\.domain2\.com [NC]
RewriteRule .* - [E=MAGE_RUN_CODE:domain2_com]
RewriteCond %{HTTP_HOST} www\.domain2\.com [NC]
RewriteRule .* - [E=MAGE_RUN_TYPE:website]

或者修改index.php以根据域进行切换:

switch($_SERVER['HTTP_HOST']) {
    case 'domain1.com':
    case 'www.domain1.com':
        $mageRunCode = 'domain1_com';
        $mageRunType = 'website';
    break;
    case 'domain2.com':
    case 'www.domain2.com':
        $mageRunCode = 'domain2_com';
        $mageRunType = 'website';
    break;
}

有了这个,别忘了清除缓存&会议,它应该工作。