¿Cómo eliminar y regenerar reescrituras de URL en Magento 2?

23

Recientemente he creado 2 vistas adicionales de la tienda en la tienda magento 2. Ahora la url de categoría y los productos no son para esas tiendas no es adecuada

Por ejemplo: http://example.com/catalog/category/view/s/pouches/id/20/ que se supone que es http://example.com/accessories/pouches.html

Ahora, cuando guardo cada producto y categoría uno por uno, se regenera la reescritura de URL para ese producto o categoría.

Pero hay muchos productos y categorías.

Entonces, ¿hay alguna manera de regenerar la reescritura de URL

como en Magento 1.x, se puede hacer mediante reindexación.

Arun Karnawat
fuente
En Magento 2, el módulo de reescritura de url no usa Indexer para crear reescrituras. La reescritura se genera en el proceso de guardar / importar páginas de productos / categorías / cms. Por lo tanto, es posible que deba seguir la forma programática de cargar y guardar las categorías
mp196
¿me puede sugerir alguna referencia para crear script para hacerlo?
Arun Karnawat
Necesita volver a indexar nuevamente.
Vaibhav Jain
Ya he intentado indexar, no hay índice de reescritura de URL en Magento 2. Por lo tanto, no funcionó. Ahora tengo reindexar de nuevo, no funciona
Arun Karnawat
1
Para los productos, lo que intente es seleccionarlos todos de la cuadrícula, y seleccionar atributos de actualización y en la pestaña de sitios web, seleccione el sitio web (aunque los productos ya están asignados al mismo sitio web) Esto volverá a guardar el producto y podría regenerar las reescrituras de URL.
mp196

Respuestas:

16

Este módulo ha quedado en desuso, puede usar este módulo en su lugar

Descargar Using Composer;

compositor requiere elgentos / regenerate-catalog-urls

Configuración de php bin / magento: actualización

Regenerar URL para todos los productos y la tienda global

php bin / magento regenerate: producto

Regenerar url para productos con id (1, 2, 3, 4) para la tienda 1

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

Desarrollador principal
fuente
ese módulo tiene errores, pero aún puede ayudar en algunos casos.
Gediminas
Sí, y será útil para nosotros usar esos métodos para activar la reescritura de URL del producto.
Desarrollador líder el
1
Actualmente, no funciona en 2.1.9 ...
Spyrule
@Spyrule Estoy en 2.1.9 y tengo problemas. Sin embargo, después de registrar mi problema, alguien me señaló esta solicitud de extracción que no ha sido aprobada pero que funciona para mí: github.com/Iazel/magento2-regenurl/pull/21/commits/…
David Wilkinson
@Gerdiminas, ¿qué errores conoces?
harri
19

Puede usar Regenerar una extensión de reescritura de URL (permite regenerar una reescritura de URL de productos y categorías).

Para volver a generar todas las reescrituras de Url de las categorías / productos en todas las tiendas (admite una multistore) ejecute:

$> bin/magento ok:urlrewrites:regenerate

Para regenerar las reescrituras de URL en la vista de tienda específica (p. Ej .: el ID de la vista de tienda es "2"):

$> bin/magento ok:urlrewrites:regenerate 2
Oleg Koval
fuente
1
Esta extensión funciona perfectamente para mí. Gracias por tu extensión.
mapaladiya
funciona muy bien! ¡Gracias!
LucScu
¿Esto elimina las reescrituras antiguas?
Matthew McLennan
1
¿Sigue funcionando? No es para mi.
Kirby el
1
@OlegKoval He instalado la versión 1.3.1 pero todavía no me funciona. Entonces, ¿cuál es el problema detrás de esto?
Chintan Kaneriya
3

En actualización de la respuesta de @mahendra Jella, pruebe esta rama de la misma extensión: https://github.com/PascalBrouwers/magento2-regenurl/tree/feature/generate_category

Éste puede regenerar URL para las categorías demasiado .

El comando es el siguiente:

php bin/magento iazel:regenurl
# Regenrate Category URL keys >
php bin/magento iazel:regenerate_urls
th3pirat3
fuente
Esta extensión funcionó muy bien para mí en 2.1.9. También ayudó a identificar productos de URL duplicados por ID (aunque sería útil una actualización menor para enumerar el sku).
Spyrule
Esta extensión no funciona para mí magento 2.2.9
jruzafa
3

En realidad, hay una manera fácil de solucionar esto sin muchos problemas. Para las personas TL: DR, las partes en negrita son relevantes.

Una cosa para verificar primero; Si tiene varias vistas de la tienda, acceda al producto y cambie la vista a una vista particular. Desplácese hacia abajo y asegúrese de que la clave URL esté configurada en "Usar valor predeterminado". Si eso no está marcado, nunca se generará. Creo que esto puede suceder cuando importas productos M1. Tenía más de 200 productos que necesitaban retocados.

Esta solución también ayuda si haces el truco de cambiar tu tienda a una raíz y viceversa diferentes, lo que limpia todo. Incluyendo tus personalizados. Y puede terminar con nada más que las URL de categoría. No estoy seguro de por qué la generación de URL para productos falla por completo, pero creo que es porque Magento está tratando de hacer demasiados enlaces en una operación que falla.

Así que prueba esto. Abra la ventana de reescritura de URL y anote el número de entradas. Esto te permite saber si funciona.

Vaya a una categoría de primer nivel (no funciona de manera predeterminada porque no tiene una clave de URL). Desplácese hacia abajo hasta Search Engine Optimization / URL-Key. Agregue una X al final de la clave. Desmarque "Crear redireccionamiento permanente para URL antigua", solo agrega más trabajo a la operación. Guarda tu categoría.

Repita la operación y elimine la X, vuelva a desmarcar la opción "Crear redireccionamiento permanente para URL anterior", ya que no necesita que esas URL antiguas obstruyan la tabla. Guardar de nuevo.

Actualice la página de reescritura de URL y debería ver un nuevo número y nuevas URL brillantes.

Repita según sea necesario.

FYI realmente grandes categorías pueden pasar el tiempo. Entonces, en esos casos, hacen las subcategorías más pequeñas por sí mismas. En mi servidor ese umbral es de aproximadamente 400 entradas.

Magento es lo suficientemente inteligente como para hacer los enlaces para la categoría que se encuentra arriba de sus subcategorías. También es lo suficientemente inteligente como para que cuando vea un producto en otra categoría, también construya los enlaces allí.

Me llevó un tiempo descubrir por qué veía cada vez menos enlaces agregados a medida que avanzaba en la lista de categorías. Fue porque la mayoría de los productos ya estaban en la mesa y solo quedaron los rezagados que no habían aparecido antes.

Brokentusk
fuente
0

Entonces, tuve este problema con los productos y lo solucioné usando la función de actualización masiva para eliminar todos los productos de la tienda y luego volver a agregarlos. No tenía muchas categorías, así que entré y las volví a guardar.

En general, creo que es mejor evitar la táctica de truncamiento y regeneración de ole que hicimos en Magento 1. Si las reescrituras de su producto se ven mal, solo haga lo que publiqué anteriormente y eso debería corregirlas.

espradley
fuente
0

Según sé, Magento 2 no proporciona esta función, pero estoy usando esta extensión

http://shreejiinfosys.co.in/url-rewrite-generator-magento-2.html

a partir de esto, puedo regenerar la categoría y la URL de todos los productos.

Nota: No estoy promocionando la extensión, por lo tanto, estoy usando esta extensión y es bastante útil para mí.

Herrero
fuente
0

Yo también tuve ese problema, estoy usando magento 1.9.2.4, magento no proporciona ningún método para regenerar URL personalizadas. Entonces, lo que hice fue un poco fuera de la mesa, y resolvió el problema, nunca intenté la extensión de reescritura de URL de magento, así que no puedo decir cómo funcionan.

Nota: tal vez no debería considerar esto si tiene demasiadas reescrituras de URL personalizadas.

Magento regenera sus redireccionamientos predeterminados, por lo que si una reescritura personalizada causa un problema, puede truncar la tabla core_url_rewrite de su base de datos magento.

ingrese la descripción de la imagen aquí

Asegúrese de hacer una copia de seguridad de la base de datos antes de hacerlo.

Lalit838
fuente
Ese es todo el punto, a diferencia del magento 1, el magento 2 no tiene un índice para regenerar la URL. La pregunta es sobre Magento 2.1
Arun Karnawat
0

Lamentablemente, ninguna de estas extensiones / módulos me ha funcionado. Tengo alrededor de 4000 productos y me mudo de Magento 1.9.2.4 a 2.2.2. Utilicé la herramienta de migración de datos y funcionó de maravilla, aparte de este problema.

Algunos de mis productos tienen claves de URL y otros no. Solo tengo una tienda, que es la parte frustrante. Parece que Magento considera al administrador una tienda.

Lo único que me ha funcionado fue importar los productos con la opción 'reemplazar'. Y para fines de SEO, no quiero cambiar la URL de mis productos, ni siquiera si solo agrego un número después.

Voy a intentar eliminar las reescrituras de URL solo para productos.

blueflymedia
fuente
0

Me encontré con un problema similar. En Magento 1, fue posible truncar la tabla de reescritura de URL y reindexar. Magento 2 no tiene un indexador de reescritura de URL, por lo que esta no es una opción.

Muchos sugieren la extensión de Iazel. Fui con la extensión de Olgeg Koval , y funcionó muy bien. Al ejecutar Magento 2.2, eliminó todas las reescrituras de URL existentes y las regeneró para todas las vistas de la tienda. Cero problemas.

SL02
fuente
0

Todo lo que necesita hacer para regenerar reescrituras es iniciar una reescritura. Vaya a una categoría o producto y cambie su url en la sección de SEO del producto / categoría agregando una "a-" al frente. Por ejemplo:

Url = "nombre-producto" Nueva Url = "nombre-producto-a"

Esto activará la reescritura y rehacerá todas las demás reescrituras.

rupi
fuente
Esto solo funciona si tienes un puñado de reescrituras. Con más de 100 productos atascados en la URL anterior, esta no es una solución factible.
Jacques