मैंने इस कार्य को प्राप्त करने के कई तरीके आजमाए हैं। मैं उनके योगदान के लिए @ मतिअस-हिडाल्गो का शुक्रिया अदा करना चाहूंगा, हालांकि मुझे उनका जवाब पहली बार में समझ में नहीं आया :)।
यहाँ परिदृश्य है। हमारी दो अलग-अलग वेबसाइटें हैं, और प्रत्येक वेबसाइट में दो अलग-अलग स्टोर व्यूज निम्नानुसार हैं:
वेबसाइट 1
- वेबसाइट 1 (ई-कॉमर्स)
- वेबसाइट 1 (वेन्डा असिस्टिडा)
वेबसाइट 2
- वेबसाइट 2 (ई-कॉमर्स)
- वेबसाइट 2 (वेन्डा असिस्टिडा)
मेरे समाधान में, हम Magento के व्यवस्थापक में कुछ कॉन्फ़िगरेशन बदलने जा रहे हैं । फिर हम कुछ उप-फ़ोल्डर बनाने जा रहे हैं , और अंत में हम संशोधितnginx.conf
करने जा रहे हैं ।
सबसे पहले, हमें Magento के व्यवस्थापन में कुछ कॉन्फ़िगरेशन परिवर्तन करने की आवश्यकता है । पर जाएं Stores
-> Configuration
-> General
-> Web
। हमें प्रत्येक स्टोर दृश्य के लिए बेस URL बदलने की आवश्यकता है ।
डिफ़ॉल्ट कॉन्फ़िगरेशन के लिए
कृपया डिफ़ॉल्ट कॉन्फ़िगरेशन के लिए निम्न कॉन्फ़िगरेशन प्रदान करें।
वेबसाइट 1 (ई-कॉमर्स) और वेबसाइट 1 (वेन्डा असिस्टिडा) के लिए
कृपया सभी वेबसाइट 1 स्टोर विचारों के लिए निम्नलिखित कॉन्फ़िगरेशन प्रदान करें ।
वेबसाइट 2 (ई-कॉमर्स) और वेबसाइट 2 (वेन्डा असिस्टिडा) के लिए
कृपया सभी वेबसाइट 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;
}
}
इस सभी विन्यास और संशोधनों के बाद, आप उप-फ़ोल्डर के रूप में वेबसाइटों का उपयोग करने में सक्षम होंगे। मुझे उम्मीद है यह मदद करेगा।