Adobe Commerce 온-프레미스: URL에 스토어 코드가 없는 다중 스토어 설정

전역 URL에 스토어 코드 추가 설정을 활성화하지 않고 사용자 지정 URL 구조(예: www.example.com/dk)로 Adobe Commerce에서 새 스토어 보기를 설정할 때 콘텐츠와 테마가 예상대로 표시되지만 페이지에 404 오류​가 표시됩니다. 이 문제는 NGINX가 MAGE_RUN_TYPEMAGE_RUN_CODE 지시문으로 구성된 경우에도 발생합니다.

이 문제를 해결하려면 기본 URL을 구성하고 NGINX 또는 서버 구성을 업데이트한 다음 세션 및 라우팅 동작을 확인합니다.

설명 description

환경

Adobe Commerce 온프레미스

문제/증상

  • 저장소별 콘텐츠가 올바르게 로드되지만 404 오류 페이지가 발생합니다.
  • NGINX가 MAGE_RUN_TYPEMAGE_RUN_CODE을(를) 사용하여 /dk/에 대한 요청을 라우팅하도록 구성되었지만 설정이 예상대로 작동하지 않습니다.

해결 방법 resolution

Url에 저장소 코드 추가를 전역적으로 활성화하지 않고 특정 저장소 보기에 대한 사용자 지정 URL 구조를 구성하려면 다음 단계를 수행합니다.

  1. 스토어 > 구성 > 일반 > 아래의 관리 패널에서 새 스토어 보기에 대한 기본 URL을 설정합니다. 예를 들어 https://www.example.com/dk/을(를) 사용합니다.

  2. 서버 구성을 업데이트합니다.

    • NGINX: 구성이 올바른 저장소 보기로 /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;
                              }
      
      • 대체 요소(모든 웹 서버): Magento 루트에 magento-vars.php 파일을 만듭니다.
      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;
      

      pub/index.php의 첫 번째 줄로 포함:

      code language-none
      require __DIR__ . '/../magento-vars.php';
      
  3. 쿠키(예: PHPSESSID)가 HTTP 응답에 올바르게 설정되어 있는지 확인하여 세션 데이터가 저장소와 일치하는지 확인하십시오.

  4. 라우팅을 방해할 수 있는 추가 재작성 또는 리디렉션이 있는지 확인합니다.

  5. 콘텐츠가 로드되지만 404 오류가 표시되는 경우:

    • var/log의 Magento 로그와 서버 로그에서 오류 또는 잘못된 구성을 검토하십시오.

    • CLI를 사용하여 캐시 지우기 및 데이터 다시 인덱싱:

      code language-none
      bin/magento cache:clean
                          bin/magento indexer:reindex
      
  6. 이러한 변경 사항을 적용한 후 덴마크 스토어 보기의 다양한 페이지에 대한 액세스를 테스트합니다.

관련 읽기

recommendation-more-help
experience-cloud-kcs-help-kbarticles