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

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

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

설명 description

환경

Adobe Commerce 온프레미스

문제/증상

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

해결 방법 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
3d58f420-19b5-47a0-a122-5c9dab55ec7f