Adobe Commerce no local: Configuração de várias lojas sem códigos de loja em URLs
Ao configurar uma nova exibição de armazenamento no Adobe Commerce com uma estrutura de URL personalizada, como www.example.com/dk, sem ativar a configuração global Adicionar código de armazenamento a URLs, o conteúdo e o tema serão exibidos conforme esperado, mas a página exibirá um erro 404. Isso acontece mesmo quando NGINX está configurado com diretivas MAGE_RUN_TYPE e MAGE_RUN_CODE.
Para corrigir isso, configure o URL de base, atualize o NGINX ou a configuração do servidor e verifique o comportamento da sessão e do roteamento.
Descrição description
Ambiente
Adobe Commerce no local
Problema/Sintomas
- O conteúdo específico do armazenamento é carregado corretamente, mas resulta em um erro 404 página.
- O NGINX está configurado para rotear solicitações para
/dk/usandoMAGE_RUN_TYPEeMAGE_RUN_CODE, mas a configuração não funciona conforme esperado.
Resolução resolution
Para configurar uma estrutura de URL personalizada para uma exibição de repositório específica sem habilitar globalmente Adicionar Código de Repositório às Urls, siga estas etapas:
-
Defina as URLs de base para a nova exibição de armazenamento no painel de administração em Lojas
>Configuração>Geral>Web. Por exemplo, usehttps://www.example.com/dk/. -
Atualize a configuração do servidor:
-
NGINX: certifique-se de que a configuração roteia
/dk/para a exibição de repositório correta: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 (Todos os Servidores Web): Crie um arquivo
magento-vars.phpna raiz do 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;Incluir esta como a primeira linha em
pub/index.php:code language-none require __DIR__ . '/../magento-vars.php'; - Alternativa (Todos os Servidores Web): Crie um arquivo
-
-
Verifique se os cookies (por exemplo,
PHPSESSID) estão definidos corretamente nas respostas HTTP para garantir que os dados da sessão se alinhem ao repositório. -
Verifique se há regravações ou redirecionamentos adicionais que possam interferir no roteamento.
-
Se o conteúdo for carregado, mas mostrar um erro 404:
-
Examine os logs do Magento em
var/loge os logs do servidor em busca de erros ou configurações incorretas. -
Limpe o cache e reindexe os dados usando a CLI:
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
Teste o acesso a várias páginas na exibição de armazenamento da Dinamarca após aplicar essas alterações.
Leitura relacionada
- Configurar vários sites ou lojas no Guia do Commerce na Nuvem