Magento 2에서 URL 재 작성을 삭제하고 재생성하는 방법은 무엇입니까?


23

최근에 magento 2 상점에서 2 개의 추가 상점보기를 작성했습니다. 이제 카테고리 및 제품의 URL이 해당 상점에 적합하지 않습니다.

예 : http://example.com/catalog/category/view/s/pouches/id/20/ 가정 해있다 할 수 http://example.com/accessories/pouches.html

이제 각 제품과 범주를 하나씩 저장하면 해당 제품이나 범주에 대한 URL 다시 쓰기가 재생성됩니다.

그러나 많은 제품과 카테고리가 있습니다.

URL 재 작성을 재생성 할 수있는 방법이 있습니까?

Magento 1.x에서와 같이 재 인덱싱을 통해 수행 할 수 있습니다.


Magento 2에서 URL 다시 쓰기 모듈은 인덱서를 사용하여 다시 쓰기를 만들지 않습니다. 제품 / 카테고리 / cms 페이지 저장 / 가져 오기 과정에서 다시 쓰기가 생성됩니다. 따라서 프로그래밍 방식으로 범주를로드하고 저장하는 방법을 찾아야 할 수도 있습니다.
mp196

스크립트를 작성하기위한 참조를 제안 해 주시겠습니까?
Arun Karnawat

다시 인덱싱해야합니다.
Vaibhav Jain

이미 인덱싱을 시도했지만 Magento 2에 URL 다시 쓰기 인덱스가 없습니다. 작동하지 않습니다. 나는 다시 색인을 다시 작성
했지만

1
시도하는 제품의 경우 그리드에서 모든 제품을 선택하고 업데이트 속성을 선택하고 웹 사이트 탭에서 웹 사이트를 선택하십시오 (제품이 이미 동일한 웹 사이트에 할당되어 있음). 제품을 다시 저장하고 URL 다시 쓰기를 다시 생성 할 수 있습니다.
mp196

답변:


16

모듈 은 더 이상 사용되지 않으며 대신 이 모듈을 사용할 수 있습니다

Composer를 사용하여 다운로드;

작곡가는 elgentos / regenerate-catalog-url이 필요합니다

PHP bin / magento 설정 : 업그레이드

모든 제품 및 글로벌 상점에 대한 URL 재생성

PHP 빈 / 마 젠토 재생 : 제품

상점 1의 ID가 (1, 2, 3, 4) 인 제품의 URL 재생성

php bin / magento 재생성 : product : url -s1 12 34


해당 모듈은 버그가 있지만 여전히 도움이 될 수 있습니다.
Gediminas

예, 이러한 방법을 사용하여 제품 URL 재 작성을 트리거하는 것이 도움이됩니다.
리드 개발자

1
현재 2.1.9에서 작동하지 않습니다 ...
Spyrule

@Spyrule 저는 2.1.9에 있으며 문제가 발생했습니다. 그러나 내 문제를 기록한 후 누군가 github.com/Iazel/magento2-regenurl/pull/21/commits/…
David Wilkinson

@ Gerdiminas 어떤 버그를 알고 있습니까?
harri

19

URL 재 작성 확장을 사용할 수 있습니다 (제품 및 카테고리의 URL 재 작성을 재생성 할 수 있음).

모든 상점 (멀티 스토어를 지원함)에서 카테고리 / 제품의 모든 URL 재 작성을 다시 생성하려면 다음을 실행하십시오.

$> bin/magento ok:urlrewrites:regenerate

특정 상점보기에서 URL 재 작성을 재생성하려면 (예 : 상점보기 ID는 "2") :

$> bin/magento ok:urlrewrites:regenerate 2

1
이 확장 기능은 저에게 완벽하게 작동합니다. 확장 해 주셔서 감사합니다.
mapaladiya

아주 잘 작동합니다! 고마워!
LucScu

이전 재 작성이 삭제됩니까?
Matthew McLennan

1
여전히 작동합니까? 그것은 나를 위해하지 않습니다.
커비

1
@OlegKoval 버전 1.3.1을 설치했지만 여전히 작동하지 않습니다. 그렇다면이 문제는 무엇입니까?
친탄 카네 리야

3

@mahendra Jella의 답변으로 업데이트하면 동일한 확장 의이 분기를 시도하십시오 : https://github.com/PascalBrouwers/magento2-regenurl/tree/feature/generate_category

이것 역시 카테고리의 URL을 재생성 할 수 있습니다 .

명령은 다음과 같습니다.

php bin/magento iazel:regenurl
# Regenrate Category URL keys >
php bin/magento iazel:regenerate_urls

이 확장은 2.1.9에서 나에게 아름답게 작동했습니다. ID로 중복 URL 제품을 식별하는 데 도움이 되었음에도 불구하고 SKU를 나열하는 사소한 업데이트가 유용 할 수 있습니다.
Spyrule

이 확장 기능은 저에게 적합하지 않습니다. magento 2.2.9
jruzafa 7:30에

3

실제로 많은 문제없이 이것을 해결할 수있는 쉬운 방법이 있습니다. TL : DR 직원의 경우 굵은 체 부분이 관련됩니다.

먼저 확인해야 할 사항 상점보기가 여러 개인 경우 제품으로 이동하여보기를 특정보기로 전환하십시오. 아래로 스크롤하여 URL 키가 "기본값 사용"으로 설정되어 있는지 확인하십시오. 확인하지 않으면 생성되지 않습니다. M1 제품을 가져올 때 이런 일이 발생할 수 있다고 생각합니다. 200 개가 넘는 제품이 필요했습니다.

이 수정 사항은 상점을 다른 루트로 다시 전환하여 모든 것을 정리하는 트릭을 수행하는 경우에도 도움이됩니다. 당신의 것을 포함하여. 그리고 그것은 카테고리 URL만으로 끝날 수 있습니다. 왜 제품의 URL 생성이 완전히 실패하는지 잘 모르겠지만 Magento가 한 번의 작업으로 너무 많은 링크를 만들려고했기 때문이라고 생각합니다.

이 기회를주세요. URL 다시 쓰기 창을 열고 항목 수를 기록하십시오. 작동하는지 알려줍니다.

첫 번째 수준 카테고리로 이동하십시오 (URL 키가 없으므로 기본적으로 작동하지 않습니다). 검색 엔진 최적화 / URL 키로 스크롤하십시오. 키 끝에 X를 추가하십시오. "이전 URL에 대한 영구 리디렉션 작성"을 선택 취소하면 작업에 더 많은 작업 만 추가됩니다. 카테고리를 저장하십시오.

작업을 반복하고 X를 제거하고 "이전 URL에 대한 영구 리디렉션 작성"을 선택 취소하십시오. 이전 URL이 테이블을 막지 않아도되기 때문입니다. 다시 저장하십시오.

URL 다시 쓰기 페이지를 새로 고치면 새 숫자와 반짝이는 새 URL이 표시됩니다.

필요에 따라 반복하십시오.

참고로 정말 큰 카테고리가 시간 초과 될 수 있습니다. 따라서 이러한 경우 더 작은 하위 범주를 스스로 수행하십시오. 내 서버에서 해당 임계 값은 약 400 개의 항목입니다.

Magento는 하위 범주 위의 범주에 대한 링크를 만들 수있을만큼 똑똑합니다. 또한 다른 카테고리의 제품을 볼 때 거기에 대한 링크도 작성하는 것이 좋습니다.

카테고리 목록 아래로 내려 가면서 링크 수가 점점 줄어드는 이유를 파악하는 데 시간이 걸렸습니다. 대부분의 제품이 이미 테이블에 있었고 이전에는 없었던 스 트래 글러 만 남아 있기 때문입니다.


0

그래서 나는 제품에 대해이 문제가 있었고 대량 업데이트 기능을 사용하여 상점에서 모든 제품을 제거한 다음 다시 추가 하여이 문제를 해결했습니다. 나는 많은 카테고리가 없었기 때문에 방금 들어 와서 다시 저장했습니다.

전반적으로, 나는 Magento 1에서 한 ole 'truncate and regenerate 전술을 피하는 것이 가장 좋습니다. 귀하의 제품이 재 작성된 것으로 보이면 위에 게시 한 내용 만 수정하면 문제가 해결됩니다.



0

나도 magento 1.9.2.4를 사용하고 있는데 magento는 사용자 정의 URL을 재생성하는 방법을 제공하지 않습니다. 그래서 내가 한 일은 테이블에서 조금 벗어나서 문제가 해결되었으며, magento url rewrite extension을 시도하지 않았으므로 작동 방식을 말할 수 없습니다.

참고-사용자 지정 URL 다시 쓰기가 너무 많은 경우이를 고려하지 않아야합니다.

Magento는 기본 리디렉션을 다시 생성하므로 사용자 지정 다시 쓰기로 인해 문제가 발생하면 magento 데이터베이스에서 core_url_rewrite 테이블을 자를 수 있습니다 .

여기에 이미지 설명을 입력하십시오

데이터베이스를 백업하기 전에 반드시 백업하십시오.


그것은 마 젠토 1과 달리 요점은, 마 젠토 2는 URL을 재생성하는 인덱스를 가지고 있지 않습니다. 질문은 Magento 2.1에 관한 것입니다
Arun Karnawat

0

불행히도 이러한 확장 / 모듈 중 어느 것도 나를 위해 일하지 않았습니다. 약 4000 개의 제품이 있으며 Magento 1.9.2.4에서 2.2.2로 이동합니다. 데이터 마이그레이션 도구를 사용했는데이 문제 외에는 매력처럼 작동했습니다.

내 제품 중 일부에는 URL 키가 있고 일부는 없습니다. 실망스러운 점포가 하나뿐입니다. Magento가 관리자를 상점으로 간주하는 것 같습니다.

나를 위해 일한 유일한 것은 '바꾸기'옵션으로 제품을 가져 오는 것입니다. 그리고 SEO 목적을 위해 제품 번호를 변경하지 않고 내 제품의 URL을 변경하고 싶지 않습니다.

제품의 URL 재 작성 만 삭제하려고합니다.


0

비슷한 문제가 발생했습니다. Magento 1에서는 url rewrite 테이블과 reindex를자를 수있었습니다. Magento 2에는 URL 재 작성 인덱서가 없으므로 옵션이 아닙니다.

많은 사람들이 이젤 확장을 제안합니다. Olgeg Koval확장 기능을 사용하여 아름답게 작동했습니다. Magento 2.2를 실행하면 기존 URL 재 작성이 모두 삭제되고 모든 상점보기에 대해 다시 생성됩니다. 제로 문제.


0

다시 쓰기를 재생성하려면 다시 쓰기를 시작하기 만하면됩니다. 카테고리 또는 제품으로 이동하여 제품 / 카테고리의 SEO 섹션에서 URL 앞에 "a-"를 추가하여 URL을 변경하십시오. 예를 들면 다음과 같습니다.

URL = "product-name"새 URL = "a-product-name"

다시 쓰기가 트리거되고 다른 모든 다시 쓰기가 다시 실행됩니다.


소수의 재 작성이있는 경우에만 작동합니다. 이전 URL에 100 개가 넘는 제품이 붙어 있으면이 방법은 불가능합니다.
Jacques
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.