Bạn có thể vui lòng cung cấp nguồn / thủ tục để tạo nhiều trang web trong magento 2. Tôi có một google về vấn đề này, nhưng không có nguồn / thủ tục nào không cung cấp đường dẫn để tạo nhiều trang web / cửa hàng.
Bạn có thể vui lòng cung cấp nguồn / thủ tục để tạo nhiều trang web trong magento 2. Tôi có một google về vấn đề này, nhưng không có nguồn / thủ tục nào không cung cấp đường dẫn để tạo nhiều trang web / cửa hàng.
Câu trả lời:
Tạo nhiều trang web trong magento, Các bước để tạo nhiều trang trong bảng quản trị cũng giống như trong magento1.x. Đừng quên thay đổi url cơ sở và url bảo mật cho trang web / cửa hàng mới. Sau khi thực hiện thay đổi trong bảng quản trị, hãy làm theo các bước dưới đây,
1) Tạo một thư mục mới trong gốc magento và sao chép index.php
và .htaccess
các tệp từ gốc magento sang thư mục mới.
2) Chỉnh sửa index.php
cái trong thư mục mới
Thay thế:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Với:
$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'newstore'; //Webite code as same in admin panel
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Và cũng cập nhật bootstrap.php bao gồm đường dẫn như dưới đây,
Thay thế:
require __DIR__ . '/app/bootstrap.php';
Với:
require __DIR__ . '/../app/bootstrap.php';
3) Tạo một liên kết trong thư mục mới
ln -s /home/example/example.com/html/app/ app
ln -s /home/example/example.com/html/lib/ lib
ln -s /home/example/example.com/html/pub/ pub
ln -s /home/example/example.com/html/var/ var
tham khảo này
Vui lòng xóa các var/generation,var/cache and pub/static
tập tin và thực hiện triển khai nội dung tĩnh.
.htaccess
(cùng với index.php
) từ thư mục gốc vào thư mục mới.
nhờ tài nguyên này
trong phần phụ trợ Magento, đi đến Cửa hàng> Tất cả Cửa hàng Tạo ở đây kiến trúc của bạn với các trang web / cửa hàng / kho lưu trữ khác nhau Lưu ý cẩn thận mã trang web, ví dụ:
trong tệp cấu hình Nginx của bạn (rất có thể trong thư mục hỗ trợ / etc / nginx / site), hãy thêm vào đầu tệp cấu hình:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
sau đó, trong server
khối, thêm khai báo để nghe 3 tên miền:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
cuối cùng, trong cấu hình php (khối bắt đầu bằng location ~ \. php $ {
), thêm
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
trước dòng (thông thường bạn sẽ thấy các dòng khác bắt đầu bằng fastcgi_param
)
include fastcgi_params;
lưu tập tin cấu hình của bạn, khởi động lại máy chủ Nginx et voila của bạn.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Nội dung
MAGE_RUN_TYPE
vàMAGE_RUN_CODE
Cách đơn giản được thử nghiệm trên magento 2.2.5
Tạo một bí danh tên miền trên ví dụ máy chủ của bạn domain2.com
Chỉnh sửa tệp index.php trong magento root
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;
$customstore = array(
'www.main.com'=>'main_website', // Website, Store or Storeview Code
'www.domian2.com'=>'domain2_website' // Website, Store or Storeview Code
);
if(isset($customstore[$_SERVER['HTTP_HOST']]))
$websitecode = $customstore[$_SERVER['HTTP_HOST']];
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = isset($websitecode) ? $websitecode : '';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';//use website or store or view
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);