Adobe Commerce On-Premise: Multi-Store-Einrichtung ohne Store-Codes in URLs
Beim Einrichten einer neuen Store-Ansicht in Adobe Commerce mit einer benutzerdefinierten URL-Struktur - z. B. www.example.com/dk - ohne die globale Einstellung Store-Code zu URLs hinzufügen zu aktivieren, werden Inhalt und Design wie erwartet angezeigt, auf der Seite wird jedoch ein 404-Fehler angezeigt. Dies geschieht auch dann, wenn NGINX mit MAGE_RUN_TYPE- und MAGE_RUN_CODE-Anweisungen konfiguriert wird.
Um dies zu beheben, konfigurieren Sie die Basis-URL, aktualisieren Sie die NGINX- oder Server-Konfiguration und überprüfen Sie das Sitzungs- und Routing-Verhalten.
Beschreibung description
Umgebung
Adobe Commerce On-Premise
Problem/Symptome
- Der speicherspezifische Inhalt wird korrekt geladen, führt jedoch zu einer 404-.
- NGINX ist so konfiguriert, dass Anfragen für
/dk/mithilfe vonMAGE_RUN_TYPEundMAGE_RUN_CODEweitergeleitet werden, aber die Einrichtung funktioniert nicht wie erwartet.
Auflösung resolution
Gehen Sie wie folgt vor, um eine benutzerdefinierte URL-Struktur für eine bestimmte Store-Ansicht zu konfigurieren, ohne Store-Code zu URLs hinzufügen global zu aktivieren:
-
Legen Sie die Basis-URLs für die neue Store-Ansicht im Admin-Bedienfeld unter Stores
>Configuration>General>Web fest. Verwenden Sie beispielsweisehttps://www.example.com/dk/. -
Aktualisieren Sie die Server-Konfiguration:
-
NGINX: Stellen Sie sicher, dass die Konfiguration zur richtigen Store-Ansicht
/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; }- Alternative (Alle Webserver): Erstellen Sie eine
magento-vars.phpDatei im Magento-Stammverzeichnis:
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;Fügen Sie dies als erste Zeile in
pub/index.phpein:code language-none require __DIR__ . '/../magento-vars.php'; - Alternative (Alle Webserver): Erstellen Sie eine
-
-
Überprüfen Sie, ob Cookies (z. B.
PHPSESSID) in HTTP-Antworten korrekt gesetzt sind, um sicherzustellen, dass die Sitzungsdaten mit dem Speicher übereinstimmen. -
Suchen Sie nach zusätzlichen Neuschreibungen oder Umleitungen, die das Routing beeinträchtigen könnten.
-
Wenn der Inhalt geladen wird, aber einen 404-Fehler anzeigt:
-
Überprüfen Sie die Magento-Protokolle in den
var/log- und Serverprotokollen auf Fehler oder Fehlkonfigurationen. -
Löschen Sie den Cache und indizieren Sie Daten mithilfe der CLI neu:
code language-none bin/magento cache:clean bin/magento indexer:reindex
-
-
Testen Sie den Zugriff auf verschiedene Seiten in der Dänemark-Store-Ansicht, nachdem Sie diese Änderungen angewendet haben.
Verwandtes Lesen
- Einrichten mehrerer Websites oder in Commerce on Cloud Guide