Adobe Commerce オンプレミス:URL にストアコードを含まないマルチストアのセットアップ
グローバルな www.example.com/dkURL にストアコードを追加 設定を有効にせずに、カスタム URL 構造( など)でAdobe Commerceに新しいストアビューを設定すると、コンテンツとテーマは期待どおりに表示されますが、ページに 404 エラーが表示されます。 これは、NGINX が MAGE_RUN_TYPE および MAGE_RUN_CODE ディレクティブで設定されている場合でも発生します。
これを修正するには、ベース URL を設定し、NGINX またはサーバー設定を更新し、セッションとルーティング動作を確認します。
説明 description
環境
Adobe Commerce オンプレミス
問題/症状
- ストア固有のコンテンツは正しく読み込まれますが、404 error ページが発生します。
- NGINX は、
/dk/とMAGE_RUN_TYPEを使用してMAGE_RUN_CODEのリクエストをルーティングするように設定されていますが、設定が期待どおりに動作しません。
解決策 resolution
グローバルに URL にストアコードを追加 を有効にせずに、特定のストアビューのカスタム URL 構造を設定するには、次の手順に従います。
-
管理パネルの Stores
>Configuration>General>Web の下で、新しいストア表示のベース URL を設定します。 例えば、https://www.example.com/dk/を使用します。 -
サーバー設定を更新します。
-
NGINX: 構成ルートが正しいストア表示に
/dk/っていることを確認してください:code language-none location = /dk { return 301 /dk/; } location /dk/ { set $MAGE_RUN_TYPE store; set $MAGE_RUN_CODE dk; try_files $uri $uri/ /index.php$is_args$args; }- 代替(すべての web サーバー): Magento ルートに
magento-vars.phpファイルを作成します。
code language-none <?php $uri = explode('/', trim($_SERVER[ 'REQUEST_URI'] , '/')); $code = 'default'; $type = 'website'; // or 'store' if (isset($uri[ 0] ) && $uri[ 0] === 'dk') { $code = 'dk'; $type = 'store'; // usually 'store' for store views, 'website' for websites } $_SERVER[ 'MAGE_RUN_CODE'] = $code; $_SERVER[ 'MAGE_RUN_TYPE'] = $type;これを
pub/index.phpの最初の行として含めます。code language-none require __DIR__ . '/../magento-vars.php'; - 代替(すべての web サーバー): Magento ルートに
-
-
セッションデータがストアに整合するように、HTTP 応答で Cookie (
PHPSESSIDなど)が正しく設定されていることを確認します。 -
ルーティングを妨げる可能性のある追加の書き換えやリダイレクトがないか確認します。
-
コンテンツが読み込まれても 404 エラーが表示される場合:
-
var/logおよびサーバーログのMagento ログで、エラーや設定ミスを確認します。 -
CLI を使用してキャッシュをクリアし、データのインデックスを再作成します。
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
これらの変更を適用した後、デンマークのストア表示の様々なページへのアクセスをテストします。