Adobe Commerce local: configuración de varias tiendas sin códigos de tienda en las direcciones URL
Al configurar una nueva vista de tienda en Adobe Commerce con una estructura de dirección URL personalizada, como www.example.com/dk, sin habilitar la configuración global Agregar código de tienda a direcciones URL, el contenido y el tema aparecen según lo esperado, pero la página muestra un error 404. Esto sucede incluso cuando NGINX está configurado con MAGE_RUN_TYPE y MAGE_RUN_CODE directivas.
Para solucionarlo, configure la dirección URL base, actualice la configuración de NGINX o del servidor y compruebe el comportamiento de sesión y enrutamiento.
Descripción description
Entorno
Adobe Commerce local
Problema/Síntomas
- El contenido específico de la tienda se carga correctamente, pero genera una página de error 404.
- NGINX está configurado para enrutar solicitudes de
/dk/medianteMAGE_RUN_TYPEyMAGE_RUN_CODE, pero la configuración no funciona como se esperaba.
Resolución resolution
Para configurar una estructura de dirección URL personalizada para una vista de tienda específica sin habilitar globalmente Agregar código de tienda a las direcciones URL, siga estos pasos:
-
Establezca las direcciones URL base para la nueva vista de tienda en el panel de administración en Tiendas
>Configuración>General>Web. Por ejemplo, usehttps://www.example.com/dk/. -
Actualice la configuración del servidor:
-
NGINX: Asegúrese de que la configuración enruta a
/dk/a la vista de almacén correcta: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 los servidores web): Cree un archivo de
magento-vars.phpen la raíz de 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 esto como la primera línea de
pub/index.php:code language-none require __DIR__ . '/../magento-vars.php'; - Alternativa (todos los servidores web): Cree un archivo de
-
-
Compruebe que las cookies (por ejemplo,
PHPSESSID) estén configuradas correctamente en las respuestas HTTP para garantizar que los datos de sesión se alineen con el almacén. -
Compruebe si hay reescrituras o redirecciones adicionales que puedan interferir con el enrutamiento.
-
Si el contenido se carga pero muestra un error 404:
-
Revise los registros de Magento en
var/logy los registros del servidor para detectar errores o configuraciones incorrectas. -
Borre la caché y reindexe los datos mediante CLI:
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
Pruebe el acceso a varias páginas de la vista de la tienda de Dinamarca después de aplicar estos cambios.
Lectura relacionada
- Configurar varios sitios web o tiendas en la Guía de Commerce en la nube