Lokal Adobe Commerce: Konfiguration i flera butiker utan butikskoder i URL:er

När du konfigurerar en ny butiksvy i Adobe Commerce med en anpassad URL-struktur, till exempel www.example.com/dk, utan att aktivera den globala inställningen Lägg till butikskod i URL:er visas innehållet och temat som förväntat, men sidan visar ett 404-fel . Detta händer även när NGINX har konfigurerats med direktiven MAGE_RUN_TYPE och MAGE_RUN_CODE.

Du kan åtgärda detta genom att konfigurera bas-URL:en, uppdatera NGINX- eller serverkonfigurationen och verifiera sessions- och routningsbeteenden.

Beskrivning description

Miljö

Adobe Commerce lokal

Problem/symtom

  • Det butiksspecifika innehållet läses in korrekt, men resulterar i en 404-felsida .
  • NGINX har konfigurerats för att dirigera begäranden för /dk/ med MAGE_RUN_TYPE och MAGE_RUN_CODE, men konfigurationen fungerar inte som förväntat.

Upplösning resolution

Så här konfigurerar du en anpassad URL-struktur för en viss butiksvy utan att aktivera Lägg till butikskod till URL:er globalt:

  1. Ange bas-URL:er för den nya butiksvyn på adminpanelen under Lagrar > Konfiguration > Allmänt > Webb. Använd till exempel https://www.example.com/dk/.

  2. Uppdatera serverkonfigurationen:

    • NGINX: Kontrollera att konfigurationsvägarna /dk/ till rätt butiksvy:

      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;
                              }
      
      • Alternativ (alla webbservrar): Skapa en magento-vars.php-fil i Magento-roten:
      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;
      

      Inkludera detta som den första raden i pub/index.php:

      code language-none
      require __DIR__ . '/../magento-vars.php';
      
  3. Kontrollera att cookies (t.ex. PHPSESSID) har angetts korrekt i HTTP-svar för att säkerställa att sessionsdata justeras mot arkivet.

  4. Kontrollera om det finns ytterligare omskrivningar eller omdirigeringar som kan störa routningen.

  5. Om innehållet läses in men visar ett 404-fel:

    • Granska Magento-loggar i var/log och serverloggar för fel eller felkonfigurationer.

    • Rensa cache och indexera om data med CLI:

      code language-none
      bin/magento cache:clean
                          bin/magento indexer:reindex
      
  6. Testa åtkomsten till olika sidor i den danska butiksvyn efter att du har tillämpat dessa ändringar.

Relaterad läsning

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f