私はこのタスクを達成するために多くの方法を試しました。私は最初に彼の答えを理解しませんでしたが、彼の貢献に@ matias-hidalgoに感謝します:)。
これがシナリオです。我々は持っている2つのさまざまなウェブサイトを、それぞれのウェブサイトが持っている2次のように異なる店舗ビューを:
ウェブサイト1
- ウェブサイト1(eコマース)
- ウェブサイト1(Venda Assistida)
ウェブサイト2
- ウェブサイト2(eコマース)
- ウェブサイト2(Venda Assistida)
私のソリューションでは、Magento Adminの構成をいくつか変更します。次に、いくつかのサブフォルダを作成し、最後に変更しnginx.conf
ます。
まず、Magento Adminで設定を変更する必要があります。ゴーへStores
- > Configuration
- > General
- > Web
。各ストアビューのベースURLを変更する必要があります。
デフォルト設定の場合
デフォルトの構成として次の構成を指定してください。
Webサイト1(eコマース)およびWebサイト1(Venda Assistida)の場合
Webサイト1のすべてのストアビューに次の構成を指定してください。
Webサイト2(eコマース)およびWebサイト2(Venda Assistida)の場合
Webサイト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行だけです。
1行目: require __DIR__ . '/../../app/bootstrap.php';
2行目: $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'website1';
3行目: $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;
}
}
このすべての構成と変更が完了すると、Webサイトをサブフォルダーとして使用できるようになります。お役に立てば幸いです。