ฉันได้ลองหลายวิธีเพื่อให้งานนี้สำเร็จ ฉันอยากจะขอบคุณ @ matias-hidalgo สำหรับการมีส่วนร่วมของเขาแม้ว่าฉันจะไม่เข้าใจคำตอบของเขาในการอ่านครั้งแรก :)
นี่คือสถานการณ์ เรามีสองเว็บไซต์ที่ต่างกันและแต่ละเว็บไซต์มีมุมมองร้านค้าที่ต่างกันสองแห่งดังนี้:
เว็บไซต์ 1
- เว็บไซต์ 1 (อีคอมเมิร์ซ)
- เว็บไซต์ 1 (Venda Assistida)
เว็บไซต์ 2
- เว็บไซต์ 2 (อีคอมเมิร์ซ)
- เว็บไซต์ 2 (Venda Assistida)
ในการแก้ปัญหาของเรากำลังจะเปลี่ยนการตั้งค่าบางอย่างในวีโอไอพีของผู้ดูแลระบบ แล้วเราจะไปสร้างโฟลเดอร์ย่อยบางส่วนและในที่สุดเราจะไปปรับเปลี่ยนnginx.conf
ครั้งแรกของทั้งหมดที่เราจำเป็นต้องทำการเปลี่ยนแปลงการกำหนดค่าบางอย่างในวีโอไอพีของผู้ดูแลระบบ ไปที่Stores-> Configuration-> ->General Webเราจำเป็นต้องเปลี่ยนURL พื้นฐานสำหรับมุมมองแต่ละร้าน
สำหรับการกำหนดค่าเริ่มต้น
โปรดระบุการกำหนดค่าต่อไปนี้สำหรับการกำหนดค่าเริ่มต้น

สำหรับเว็บไซต์ 1 (อีคอมเมิร์ซ) และเว็บไซต์ 1 (Venda Assistida)
โปรดระบุการกำหนดค่าต่อไปนี้สำหรับมุมมองร้านค้าในเว็บไซต์ 1ทั้งหมด

สำหรับเว็บไซต์ 2 (อีคอมเมิร์ซ) และเว็บไซต์ 2 (Venda Assistida)
โปรดระบุการกำหนดค่าต่อไปนี้สำหรับมุมมองร้านค้าในเว็บไซต์ 2ทั้งหมด

ประการที่สองเราต้องสร้างwebsite1และwebsite2โฟลเดอร์ใน/pubไดเรกทอรี ในขั้นสุดท้ายคุณควรมีโฟลเดอร์ต่อไปนี้:
- MAGENTO_ROOT/pub/website1
- MAGENTO_ROOT/pub/website2
คัดลอกpub/index.phpไฟล์ลงในไดเรกทอรีเหล่านี้ จากนั้นเราจะทำให้การเปลี่ยนแปลงบางอย่างในและMAGENTO_ROOT/pub/website1/index.phpMAGENTO_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;
    }
}
หลังจากการกำหนดค่าและการปรับเปลี่ยนทั้งหมดนี้คุณจะสามารถใช้เว็บไซต์เป็นโฟลเดอร์ย่อย ฉันหวังว่ามันจะช่วย