magento 제품 URL이 중복되는 이유


10

사용하고 magento 1.7있습니다. 나는 이상한 문제에 직면하고있다. magento잘못된 URL 키로 임의의 숫자로 제품 URL을 복제하면 첨부 된 스크린 샷을 작성하십시오.

나는 또한 테이블을 비우고 rewrite_urlsURL을 다시 색인하지만 여전히 잘못된 URL을 받고 있습니다. 이 문제를 해결하도록 도와주세요. 문제의 이미지를 볼 수없는 경우 관리자 패널에서 제품 URL제품이 중복 된 링크를 클릭하십시오.

중복 된 제품 URL,실제 제품

예를 들어 당신을 이해하게하겠습니다

"example"이라는 제품이 하나 있고 URL 키가 "example"인 것처럼 Url은

www.example.com/example

이제 새 제품 "xyz를 만들었고 URL 키는"xyz "이며 URL은

www.example.com/xyz

하지만 magento는 URL을 생성합니다.

www.example.com/example-123

당신은 테이블을 의미 core_url_rewrite합니까?
Fabian Blechschmidt

예, 의미는 core_url_rewrite

동일한 URL 키를 가진 2 개의 제품이 있거나 있기 때문에 발생합니다. core_url_rewriteabd run url reindexs indexer 테이블을 다시 잘라보십시오 .
Dmytro Zavalkin

아니요 확인했습니다. 고유 한 URL 키가 있고 이미이 옵션을 시도했습니다. "core_url_rewrite 테이블 잘라 내기 abd 실행 url 다시 인덱서를 다시 씁니다"

답변:


6

이것은 1.7의 버그 인 것 같습니다. 구성 가능한 제품과 동일한 URL 키를 가진 여러 간단한 제품이있는 경우 (예 : 모든 이름이 동일 함) magento는 항상 모든 인덱스 프로세스에서 새로운 URL 재 작성을 만듭니다. 예:

첫 번째 색인 :

  • myproducturl (구성 제품)
  • myproducturl-id (ID가 추가 된 간단한 제품, 지금까지는 양호)

두 번째 색인 :

  • myproducturl (구성 제품)
  • myproducturl-randomnumber (임의의 숫자가있는 단순 제품, BAD)
  • myproducturl-id-> myproducturl-randomnumber (새 URL로 다시 작성)

그리고 모든 새로운 색인 프로세스에서 마지막 단계가 반복되므로 항상 새로운 임의의 URL 키가 생성됩니다. magento가 해당 제품의 ID를 가진 URL 키가 이미 존재하는지 확인하면 문제가되지 않습니다.

몇 개월 후에는 아무 것도 삭제하지 않고 모든 실행에서 동일한 URL 키를 가진 모든 제품에 대해 적어도 하나의 레코드가 작성되므로 url_rewrite 테이블이 매우 큽니다.


이것은 우리에게 큰 문제를 일으켰습니다. 우리는 20 가지 색상 변형과 각각 8 크기의 제품을 가지고 있으므로 동일한 이름으로 수입되는 간단한 제품이 많이 있습니다. url 키는 이름이 지정되지 않은 이름이므로 많은 중복이 발생합니다. 성가신 것은 우리가 개별적으로 액세스 할 수있는 단순함조차도 없다는 것입니다 (처음에는 색인을 얻는 조롱을 만듭니다). 우리는 간단한 sku를 이름의 일부로 가져 와서이 문제를 어느 정도 극복했습니다. 프론트 엔드에서는 보이지 않기 때문에 멀리 떨어져 있습니다.
Peter O'Callaghan

나는 또한이 문제에 직면하고 있으며 URL 재 작성 테이블은 4000 제품에 대해 80,000 개 이상의 항목에 있습니다. 누구든지 이에 대한 추가 정보가 있으면 알려주십시오.
andyjv

CE에 대한이 문제를 해결하는 Enterprise Patch가 있습니다.
brentwpeterson

@brentwpeterson 해당 패치의 ID를 알고 있습니까?
Paul


7

우리도이 버그에 부딪쳤다. 우리는 매일 다시 색인을 생성하고 약 1000 개의 제품에 대해 며칠 만에 24,000 개의 URL을 얻었습니다.

나는 그것을 고칠 수 있다고 생각합니다. 이 수정 프로그램을 프로덕션 사이트에 게시했으며 어떻게 진행되는지 확인할 것입니다. 다른 사람들이 테스트 할 수 있다면 유용 할 것입니다.

  1. 문제가 발생하면 core_url_rewrite 테이블 및 데이터를 백업하십시오.

  2. app / code / core / Mage / Catalog / Model / Url.php 줄 809 변경

    if ($product->getUrlKey() == '' && !empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        )
    

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
    
  3. core_url_rewrite 테이블 자르기 (빈)

  4. 시스템-> 색인 관리에서 카탈로그 URL을 다시 색인화하십시오.

이제 수천 번의 임의 URL 재 작성을 작성하지 않고도 다시 색인을 생성 할 수 있습니다.

수정에 대한 Jahnni와 snowcountry에게 감사합니다. 자세한 내용은 여기 ( http://www.magentocommerce.com/boards/viewthread/416476/)를 참조 하십시오.

여기 버그 리포트 : http://www.magentocommerce.com/bug-tracking/issue?issue=15048


이것은 나를 위해 일했습니다. 공감
sulabh

나는 이것이 1.9.x에서 올바르게 작동한다고 생각하지 않습니다. 작동 수정 사항은 여기를 참조하십시오 : gist.github.com/edannenberg/5310008
BlueC

0

새로운:

이건 미친 짓이야 캐싱 문제처럼 보입니다!? 인덱싱 과정에서 무언가가 깨졌지만 전혀 모르겠습니다. 죄송합니다.

낡은:

나는 왜 이런 일이 일어 났는지 전혀 모른다. 그러나 나는 나의 경험과 나의 아이디어를 적는다.

  1. Magento는 이미 존재하는 재 작성을 발견하면 계산 번호를 추가합니다.

  2. 다시 쓰기를 변경하면 magento는 이전 URL에 대한 다시 쓰기를 생성합니다 (텍스트 입력 필드 아래의 확인란이 선택된 경우).

  3. 사용자 지정 URL 다시 쓰기가 다른 곳에 저장되어 있다고 생각하므로 사용자 지정 다시 쓰기가 먼저 적용된 후 제품 다시 쓰기를 추가하려고 시도하고 가능하지 않은 경우 카운터가 추가됩니까?


내 질문을 참조하십시오. 다시 업데이트했습니다 귀하의 게시물이 지금은 유용하지 않습니다

답변을 업데이트했지만 도움이되지 않음 :(
Fabian Blechschmidt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.