Adobe Commerce オンプレミス:URLにストアコードを含まないマルチストア設定
グローバルな URLにストアコードを追加 設定を有効にせずに、Adobe Commerceでカスタム URL構造(例:www.example.com/dkなど)を使用して新しいストアビューを設定すると、コンテンツとテーマが期待どおりに表示されますが、ページに 404 エラー が表示されます。 これは、NGINXがMAGE_RUN_TYPEおよびMAGE_RUN_CODE ディレクティブで設定されている場合でも発生します。
これを修正するには、ベース URLを設定し、NGINXまたはサーバー設定を更新し、セッションとルーティング動作を検証します。
説明 description
環境
Adobe Commerce オンプレミス
問題/症状
- ストア固有のコンテンツが正しく読み込まれますが、404 エラー ページが発生します。
- NGINXは
MAGE_RUN_TYPEとMAGE_RUN_CODEを使用して/dk/のリクエストをルーティングするように設定されていますが、設定が期待どおりに機能しません。
解決策 resolution
ストアコードをUrlに追加をグローバルに有効にせずに、特定のストアビューのカスタム URL構造を設定するには、次の手順に従います。
-
ストア
>設定>一般>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
-
-
これらの変更を適用した後、デンマークのストアビューで様々なページへのアクセスをテストします。