Como excluir e regenerar reescritas de URL no Magento 2?


23

Recentemente, criei 2 visualizações adicionais da loja na magento 2. Agora, o URL da categoria e dos produtos não é para essas lojas não é adequado

Por exemplo: http://example.com/catalog/category/view/s/pouches/id/20/, que deve ser http://example.com/accessories/pouches.html

Agora, quando eu salvo cada produto e categoria, um por um, ele gera novamente a reescrita do URL para esse produto ou categoria.

Mas existem muitos produtos e categorias.

Existe alguma maneira de regenerar a reescrita de URL

como no Magento 1.x, isso pode ser feito via reindexação.


No Magento 2, o módulo de reescrita de URL não usa o Indexador para criar reescritas. A reescrita é gerada no processo de salvar / importar páginas do produto / categorias / cms. Então você pode precisar de ir a maneira programática de carregar e salvar as categorias
mp196

você pode me sugerir alguma referência para criar um script para fazer isso?
Arun Karnawat

Você precisa voltar a indexar novamente.
Vaibhav Jain

Eu já tentei indexar, não há índice de reescrita de URL no Magento 2. Portanto, não funcionou. Eu tenho reindex agora de novo, não o seu trabalho
Arun Karnawat

1
Para produtos, o que você tenta é selecionar todos eles na grade E selecionar atributos de atualização e, na guia sites, selecione o site (embora os produtos já tenham sido atribuídos ao mesmo site). Isso deve salvar novamente o produto e gerar novamente a reescrita de URL.
mp196

Respostas:


16

Este módulo está se obsoleta você pode usar este módulo em vez

Faça o download usando o compositor;

O compositor requer elgentos / regenerate-catalog-urls

php bin / magento setup: atualização

Regenerar URL para todos os produtos e a loja global

php bin / magento regenerate: produto

Regenerar URL para produtos com ID (1, 2, 3, 4) para a loja 1

php bin / magento regenerate: produto: url -s1 1 2 3 4


esse módulo é incorreto, mas ainda pode ajudar em alguns casos.
Gediminas

Sim, e será útil usar esses métodos para acionar a reescrita de URL do produto.
Desenvolvedor Desenvolvedor

1
Atualmente, não funciona em 2.1.9 ...
Spyrule 17/10

@ Spyrule Estou no 2.1.9 e tenho problemas. No entanto após entrar o meu problema, alguém me apontou para esta solicitação de recebimento que has not sido aprovado ainda trabalha um encanto para mim: github.com/Iazel/magento2-regenurl/pull/21/commits/...
David Wilkinson

@Gerdiminas, de que erros você conhece?
harri

19

É possível usar a extensão Regenerar uma URL reescrita (ela permite gerar novamente uma reescrita de URL e produtos e categorias).

Para gerar novamente todas as regravações de URL das categorias / produtos em todas as lojas (ele oferece suporte a vários armazenamentos), execute:

$> bin/magento ok:urlrewrites:regenerate

Para regenerar as reescritas de URL na visualização da loja específica (por exemplo: o ID da visualização da loja é "2"):

$> bin/magento ok:urlrewrites:regenerate 2

1
Esta extensão funciona perfeitamente para mim. Obrigado pela sua extensão.
mapaladiya

funciona muito bem! THX!
LucScu

Isso exclui as reescritas antigas?
Matthew McLennan

1
Ainda está funcionando? Não é para mim.
Kirby

1
@OlegKoval Instalei a versão 1.3.1, mas ainda assim não funciona para mim. Então, qual é o problema por trás disso?
Chintan Kaneriya

3

Em atualização para a resposta de @mahendra Jella, tente este ramo da mesma extensão: https://github.com/PascalBrouwers/magento2-regenurl/tree/feature/generate_category

Este pode regenerar URLs para categorias também .

O comando é o seguinte:

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

Esta extensão funcionou lindamente para mim no 2.1.9. Também ajudou a identificar produtos de URL duplicados por ID (embora seja útil uma pequena atualização para listar o sku).
Spyrule 17/10/19

Esta extensão não funciona para mim magento 2.2.9
jruzafa

3

Na verdade, existe uma maneira fácil de corrigir isso sem muitos problemas. Para as pessoas TL: DR, as partes em negrito são relevantes.

Uma coisa para verificar primeiro; se você tiver várias visualizações da loja, entre no produto e mude a visualização para uma visualização específica. Role para baixo e verifique se a URL-Key está definida como "Usar valor padrão". Se isso não estiver marcado, nunca será gerado. Eu acho que isso pode acontecer quando você importa produtos M1. Eu tinha mais de 200 produtos necessários.

Essa correção também ajuda se você fizer o truque em que alterna sua loja para uma raiz diferente e vice-versa, o que limpa tudo. Incluindo os seus personalizados. E pode terminar com nada além dos URLs da categoria. Não sei por que a geração de URL dos produtos falha completamente, mas acho que é porque o Magento está tentando fazer muitos links em uma operação que falham.

Então dê uma chance. Abra a janela de reescrita do URL e anote o número de entradas. Isso permite que você saiba se funciona.

Entre em uma categoria de primeiro nível (não funciona no padrão porque não possui uma chave de URL). Role para baixo até Otimização do mecanismo de pesquisa / Chave do URL. Adicione um X ao final da chave. Desmarque a opção "Criar redirecionamento permanente para URL antigo", pois ele adiciona mais trabalho à operação. Salve sua categoria.

Repita a operação e remova o X, desmarque novamente a opção "Criar redirecionamento permanente para URL antigo", porque você não precisa desses URLs antigos entupindo a tabela. Salve novamente.

Atualize a página de reescrita do URL e você verá um novo número e novos URLs brilhantes.

Repita conforme necessário.

Para sua informação, grandes categorias podem expirar. Portanto, nesses casos, faça as subcategorias menores sozinhas. No meu servidor, esse limite é de cerca de 400 entradas.

O Magento é inteligente o suficiente para criar os links para a categoria acima das suas subcategorias. Também é inteligente o suficiente que, quando vê um produto em outra categoria, cria os links para lá também.

Demorei um pouco para descobrir por que eu estava vendo cada vez menos links adicionados ao descer a lista de categorias. Isso porque a maioria dos produtos já estava na mesa e apenas os retardatários que não apareceram antes permaneceram.


0

Portanto, eu tive esse problema de produtos e o corrigi usando o recurso de atualização em massa para remover todos os produtos da loja e adicioná-los novamente. Eu não tinha muitas categorias, então entrei e as salvei novamente.

No geral, acho que evitar a tática truncada e regenerada que fizemos no Magento 1 é provavelmente o melhor. Se o seu produto reescrever parecer errado, faça o que eu postei acima e isso deve corrigi-los.



0

Eu também tive esse problema, estou usando o magento 1.9.2.4, o magento não fornece nenhum método para regenerar URLs personalizados. Então, o que eu fiz é um pouco fora da mesa, e ele resolveu o problema, eu nunca tentei a extensão de reescrita de URL do magento, então não posso dizer como eles funcionam.

Nota- Talvez você não deva considerar isso se tiver muitos reescritos de URL personalizados.

O Magento regenera seus redirecionamentos padrão, portanto, se uma reescrita personalizada estiver causando um problema, você poderá truncar a tabela core_url_rewrite do seu banco de dados magento.

insira a descrição da imagem aqui

Certifique-se de fazer backup do banco de dados antes de fazê-lo.


Esse é o ponto inteiro, ao contrário do magento 1, o magento 2 não tem índice para regenerar o URL. A pergunta é sobre Magento 2.1
Arun Karnawat

0

Infelizmente, nenhuma dessas extensões / módulos funcionou para mim. Eu tenho cerca de 4000 produtos e passando do Magento 1.9.2.4 para 2.2.2. Usei a ferramenta de migração de dados e funcionou como um encanto, além desse problema.

Alguns dos meus produtos têm chaves de URL e outros não. Eu só tenho uma loja que é a parte frustrante. Parece que o Magento considera o administrador uma loja.

A única coisa que funcionou para mim foi importar os produtos com a opção 'substituir'. E para fins de SEO, não quero alterar os URLs dos meus produtos, mesmo que apenas adicione um número depois.

Vou tentar excluir as reescritas de URL apenas para produtos.


0

Eu tive um problema semelhante. No Magento 1, foi possível truncar a tabela de reescrita de url e reindexar. O Magento 2 não possui um indexador de reescrita de URL, portanto essa não é uma opção.

Muitos sugerem a extensão Iazel. Eu fui com a extensão de Olgeg Koval , e funcionou lindamente. Ao executar o Magento 2.2, ele excluiu todas as reescritas de URL existentes e as regenerou para todas as visualizações da loja. Zero problemas.


0

Tudo o que você precisa fazer para regenerar reescritas é iniciar uma reescrita. Vá para uma categoria ou produto e altere seu URL na seção SEO do produto / categoria adicionando um "a-" à frente. Por exemplo:

URL = "nome do produto" Novo URL = "nome do produto"

Isso acionará a reescrita e refazerá todas as outras reescritas.


Isso só funciona se você tiver um punhado de reescritas. Com mais de 100 produtos presos no URL antigo, essa não é uma solução viável.
Jacques
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.