.htaccess 配置Magento 2的多存储后端

nc1teljy  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(147)

所以这就是我的问题。
1)我创建了网站,商店和商店的看法。
2)在index.php文件中,我放置了以下代码:

$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'test';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);

问:我应该在域名中加入商店代码(例如test.exampledomain.com)还是像上面那样只加入商店代码?
3)在我的htaccess文件的
第一个月
下面的代码:

SetEnvIf Host .*http://localhost/magento2.* MAGE_RUN_CODE=test
SetEnvIf Host .*http://localhost/magento2.* MAGE_RUN_TYPE=website

4)我在一个真实的网站和一个本地开发主机上尝试过这个方法,但是似乎不能让第二个商店/网站显示出来,我一直收到一个500错误。还有什么需要添加或更改的吗?
像霍斯特一样
有人能解释我做错了什么吗?我已经看了无数的博客和教程,仍然可以让它工作。
在magento 1中,您只需对index.php文件进行更改,商店就可以使用设置的域。

vxqlmq5t

vxqlmq5t1#

我只修改了.htaccess文件。在RewriteEngineOn下我添加了:设置环境主机.[代码]. Mage _RUN_CODE=[代码]设置环境主机.[代码]. MAGE_RUN_TYPE=网站
这对我很有效。所以我看到,你把商店的网址放了两次。相反,把'test'放在那里,如果这是你在管理中给它的code_name。

qq24tv8q

qq24tv8q2#

你说了“multistore”,所以我希望看到两个商店,但你在index.php中只设置了一个,每个商店都需要一个类似的条目,换句话说,你需要这样的代码:

/* Code below is needed for multi store using different domains  */
switch($_SERVER['HTTP_HOST']) {
    case 'domain1.com':
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '1';
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
        break;

    case 'domain2.com':
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '2';
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
        break;
        }

如果您的商店不使用子域,那么

/* Code below is needed for multi store using subdomains */
switch($_SERVER['HTTP_HOST']) {
    case 'sub1.domain1.com':
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '1';
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
        break;

    case 'sub2.domain1.com':
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = '2';
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
        break;
        }

数字“1”和“2”指的是Magento管理和“商店”数据库中的商店编号。

相关问题