Adobe Commerce on-premise: configurazione multi-store senza codici store negli URL
Quando si configura una nuova visualizzazione Store in Adobe Commerce con una struttura URL personalizzata, ad esempio www.example.com/dk, senza abilitare l'impostazione globale Aggiungi codice Store agli URL, il contenuto e il tema vengono visualizzati come previsto, ma nella pagina viene visualizzato un errore 404. Ciò si verifica anche quando NGINX è configurato con MAGE_RUN_TYPE e MAGE_RUN_CODE direttive.
Per risolvere questo problema, configura l’URL di base, aggiorna la configurazione di NGINX o del server e verifica il comportamento della sessione e del routing.
Descrizione description
Ambiente
Adobe Commerce On-Prem
Problema/Sintomi
- Il contenuto specifico dell'archivio viene caricato correttamente, ma si verifica un errore 404 nella pagina.
- NGINX è configurato per instradare le richieste per
/dk/utilizzandoMAGE_RUN_TYPEeMAGE_RUN_CODE, ma la configurazione non funziona come previsto.
Risoluzione resolution
Per configurare una struttura URL personalizzata per una visualizzazione archivio specifica senza abilitare globalmente Aggiungi codice archivio agli URL, effettua le seguenti operazioni:
-
Impostare gli URL di base per la nuova visualizzazione archivio nel pannello di amministrazione in Archivi
>Configurazione>Generale>Web. Ad esempio, utilizzarehttps://www.example.com/dk/. -
Aggiorna la configurazione del server:
-
NGINX: Assicurarsi che la configurazione instradi
/dk/alla visualizzazione archivio corretta: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; }- Alternativa (tutti i server Web): Creare un file
magento-vars.phpnella directory principale di Magento:
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;Includi questa come prima riga in
pub/index.php:code language-none require __DIR__ . '/../magento-vars.php'; - Alternativa (tutti i server Web): Creare un file
-
-
Verificare che i cookie (ad esempio,
PHPSESSID) siano impostati correttamente nelle risposte HTTP per garantire l'allineamento dei dati della sessione con l'archivio. -
Verificare la presenza di riscritture o reindirizzamenti aggiuntivi che potrebbero interferire con il routing.
-
Se il contenuto viene caricato ma viene visualizzato un errore 404:
-
Esaminare i registri di Magento in
var/loge i registri del server per individuare errori o configurazioni non corrette. -
Cancellare la cache e reindicizzare i dati utilizzando CLI:
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
Dopo aver applicato queste modifiche, verifica l’accesso a diverse pagine nella vista Store Danimarca.
Lettura correlata
- Configurazione di più siti Web o store nella Guida di Commerce on Cloud