我尝试了多种方法来完成此任务。我要感谢@ matias-hidalgo的贡献,尽管我一开始不理解他的回答:)。
这是场景。我们有两个不同的网站,每个网站都有两个不同的商店视图,如下所示:
网站1
- 网站1(电子商务)
- 网站1(Venda Assistida)
网站2
- 网站2(电子商务)
- 网站2(Venda Assistida)
在我的解决方案中,我们将更改Magento Admin中的某些配置。然后,我们将创建一些子文件夹,最后,我们将修改nginx.conf
。
首先,我们需要在Magento Admin中进行一些配置更改。转到Stores
-> Configuration
-> General
->Web
。我们需要为每个商店视图更改基本URL。
对于默认配置
请提供以下配置作为默认配置。
对于网站1(电子商务)和网站1(Venda Assistida)
请为所有“ 网站1”商店视图提供以下配置。
对于网站2(电子商务)和网站2(Venda Assistida)
请为所有Website 2商店视图提供以下配置。
其次,我们需要在目录中创建website1
和website2
文件夹/pub
。最后,您应该具有以下文件夹:
MAGENTO_ROOT/pub/website1
MAGENTO_ROOT/pub/website2
将pub/index.php
文件复制到这些目录中。然后,我们将在MAGENTO_ROOT/pub/website1/index.php
和中进行一些更改MAGENTO_ROOT/pub/website2/index.php
。
内容 MAGENTO_ROOT/pub/website1/index.php
我只更改了3行:
第一行: require __DIR__ . '/../../app/bootstrap.php';
第二行: $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'website1';
第三行: $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
<?php
/**
* Public alias for the application entry point
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
use Magento\Framework\App\Bootstrap;
use Magento\Framework\App\Filesystem\DirectoryList;
try {
require __DIR__ . '/../../app/bootstrap.php';
} catch (\Exception $e) {
echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
<div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
<h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
Autoload error</h3>
</div>
<p>{$e->getMessage()}</p>
</div>
HTML;
exit(1);
}
$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'website1';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
$params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [
DirectoryList::PUB => [DirectoryList::URL_PATH => ''],
DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'],
DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'],
DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'],
];
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
$bootstrap->run($app);
最后,我们需要nginx.conf
在您的MAGENTO_ROOT目录中进行修改。请在您的中输入以下配置nginx.conf
。
location /website1 {
root /website1;
if (!-e $request_filename) {
rewrite ^/(.*)$ /website1/index.php last;
break;
}
}
location /website2 {
root /website2;
if (!-e $request_filename) {
rewrite ^/(.*)$ /website2/index.php last;
break;
}
}
完成所有这些配置和修改后,您将可以将网站用作子文件夹。希望对您有所帮助。