Adobe Commerce On-premise : configuration multi-magasin sans codes de magasin dans les URL
Lors de la configuration d’une nouvelle vue de boutique dans Adobe Commerce avec une structure d’URL personnalisée (telle que www.example.com/dk) sans activer le paramètre global Ajouter le code de boutique aux URL, le contenu et le thème apparaissent comme prévu, mais la page affiche un message d’erreur 404. Cela se produit même lorsque NGINX est configuré avec des directives MAGE_RUN_TYPE et MAGE_RUN_CODE.
Pour corriger ce problème, configurez l’URL de base, mettez à jour la configuration de NGINX ou du serveur, et vérifiez la session et le comportement de routage.
Description description
Environnement
Adobe Commerce On-Prem
Problème/Symptômes
- Le contenu spécifique au magasin se charge correctement, mais génère une page d’erreur 404.
- NGINX est configuré pour acheminer les demandes de
/dk/à l’aide deMAGE_RUN_TYPEetMAGE_RUN_CODE, mais la configuration ne fonctionne pas comme prévu.
Résolution resolution
Pour configurer une structure d’URL personnalisée pour une vue de magasin spécifique sans activer globalement Ajouter le code de magasin aux URL, procédez comme suit :
-
Définissez les URL de base pour la nouvelle vue de magasin dans le panneau d’administration sous Magasins
>Configuration>Général>Web. Par exemple, utilisezhttps://www.example.com/dk/. -
Mettez à jour la configuration du serveur :
-
NGINX : assurez-vous que les itinéraires de configuration
/dk/à l’affichage correct du magasin :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; }- Alternative (Tous les serveurs web) : créez un fichier
magento-vars.phpdans la racine 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;Inclure ceci comme première ligne dans
pub/index.php:code language-none require __DIR__ . '/../magento-vars.php'; - Alternative (Tous les serveurs web) : créez un fichier
-
-
Vérifiez que les cookies (par exemple,
PHPSESSID) sont correctement définis dans les réponses HTTP pour vous assurer que les données de session s’alignent sur le magasin. -
Recherchez d’autres réécritures ou redirections qui pourraient interférer avec le routage.
-
Si le contenu se charge mais affiche une erreur 404 :
-
Consultez les journaux Magento dans les journaux
var/loget serveur pour détecter les erreurs ou les configurations incorrectes. -
Effacez le cache et réindexez les données à l’aide de l’interface de ligne de commande :
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
Testez l’accès à différentes pages dans la vue de magasin Danemark après l’application de ces modifications.
Lecture connexe
- Guide Configuration de plusieurs sites web ou magasins dans Commerce on Cloud