আমি এই কাজটি অর্জনের জন্য অসংখ্য উপায়ে চেষ্টা করেছি। আমি @ মাতিয়াস-হিডালগোকে তার অবদানের জন্য ধন্যবাদ জানাতে চাই, যদিও আমি তার উত্তরটি প্রথম পড়তে বুঝতে পারি নি :)।
এই দৃশ্যটি এখানে। আমাদের দুটি পৃথক ওয়েবসাইট রয়েছে এবং প্রতিটি ওয়েবসাইটে দুটি আলাদা স্টোর ভিউ রয়েছে:
ওয়েবসাইট ঘ
- ওয়েবসাইট 1 (ই-বাণিজ্য)
- ওয়েবসাইট 1 (ভেন্ডা অ্যাসিস্টিদা)
ওয়েবসাইট 2
- ওয়েবসাইট 2 (ই-বাণিজ্য)
- ওয়েবসাইট 2 (ভেন্ডা অ্যাসিস্টিদা)
আমার সমাধানে, আমরা Magento অ্যাডমিনে কিছু কনফিগারেশন পরিবর্তন করতে যাচ্ছি । তারপরে আমরা কয়েকটি সাব-ফোল্ডার তৈরি করতে যাচ্ছি এবং শেষ পর্যন্ত আমরা সংশোধনnginx.conf
করতে যাচ্ছি ।
প্রথমত, আমাদের ম্যাজেন্টো অ্যাডমিনে কিছু কনফিগারেশন পরিবর্তন করতে হবে । যান Stores
> - Configuration
-> General
-> Web
। প্রতিটি স্টোর দেখার জন্য আমাদের বেস ইউআরএলগুলি পরিবর্তন করতে হবে ।
ডিফল্ট কনফিগারেশনের জন্য
ডিফল্ট কনফিগারেশনের জন্য দয়া করে নিম্নলিখিত কনফিগারেশন সরবরাহ করুন।
ওয়েবসাইট 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 ডিরেক্টরিতে পরিবর্তন করতে হবে to নিম্নলিখিত কনফিগারেশন আপনার মধ্যে রাখুন 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;
}
}
এই সমস্ত কনফিগারেশন এবং পরিবর্তনগুলির পরে, আপনি ওয়েবসাইটগুলি সাব-ফোল্ডার হিসাবে ব্যবহার করতে সক্ষম হবেন। আমি আসা করি এটা সাহায্য করবে.