magento 2で複数のWebサイト/ストアを作成する


15

magento 2で複数のWebサイトを作成するためのソース/手順を提供してください。これについてはGoogleで確認していますが、複数のWebサイト/ストアを作成するためのパスを提供するソース/手順はありません。


また、このリンクを参照してください。..言語スイッチャーや店舗スイッチャーのようなフロントエンドに、マルチサイトスイッチャーを設定することができます- stackoverflow.com/questions/39290073/...

このリンクを確認してください...そして、それはうまく機能しています。例はこちら
Virang Jethva

回答:


22

magentoでマルチWebサイトを作成し、管理パネルでマルチストアを作成する手順は、magento1.xと同じです。新しいウェブサイト/ストアのベースURLとセキュアURLを変更することを忘れないでください。管理パネルで変更を行ったら、次の手順に従ってください。

1)magentoルートに新しいフォルダーindex.php.htaccess作成し、magentoルートから新しいフォルダーにファイルをコピーします。

2)index.php新しいフォルダーにあるを編集します

交換:

$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);

/** @var \Magento\Framework\App\Http $app */

$app = $bootstrap->createApplication('Magento\Framework\App\Http');

$bootstrap->run($app);

と:

 $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);

また、以下のようにbootstrap.phpインクルードパスを更新します。

交換:

require __DIR__ . '/app/bootstrap.php';

と:

require __DIR__ . '/../app/bootstrap.php';

3)新しいフォルダー内にsimlinksを作成します

 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 

これを参照

var/generation,var/cache and pub/staticファイルをクリアして、静的コンテンツの展開を行ってください。


ルートから新しいフォルダーに.htaccess(と一緒にindex.php)コピーする必要があると思います。
アンドレア

1
index.phpまたはhtaccessに値をハードコーディングせずに、ストアコードをURLに追加してマルチストアをセットアップできますか?magento2では動作していないようです
Claudiu Creanga

実稼働環境用に推奨される構成でこれを実行し、webrootを[Magento root] / pubにポイントしましたか?
ファクンドカプア

同じカスタムテーマを両方のWebサイトに適用する際に問題がありましたか?2番目のWebサイトでは、.. / en_GB / ..ではなく../ en_US / ...からアセットをロードしています。
ジュリアーノバルガス

言語コードを使用して特定のテーマにデプロイしてみてください
サラバンベルー

4

このリソースのおかげで

Magentoバックエンドで、[ストア]> [すべてのストア]に移動します。ここで、異なるWebサイト/ストア/ストアビューを使用してアーキテクチャを作成します。

  • 米国のストアにはコードがあります:私たち、およびwww.store.comによってアクセスされます
  • フランスの店舗のコードはfrで、www.store.frがアクセスします
  • スペイン語のストアにはコードesがあり、www.store.esによってアクセスされます。

Nginx構成ファイル(/ etc / nginx / sites-enabledフォルダーにある可能性が高い)に、構成ファイルの先頭に追加します。

map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}

次に、serverブロックで、3つのドメインをリッスンする宣言を追加します。

server {
 listen 80;
 server_name www.store.com www.store.fr www.store.es;

// whatever other config you get...
}

最後に、php config(で始まるブロックlocation ~ \. php $ {)に追加します

fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;

行の前(通常、で始まる他の行が表示されますfastcgi_param

 include        fastcgi_params;

設定ファイルを保存し、Nginxサーバーを再起動してください。



0

magento 2.2.5でテストされた簡単な方法

サーバー例domain2.comでドメインエイリアスを作成します

magentoルートのindex.phpファイルを編集します

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);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.