Как удалить и восстановить перезаписанные URL-адреса в Magento 2?

23

Недавно я создал 2 дополнительных магазина в магазине magento 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 не использует Indexer для создания перезаписей. Перезапись генерируется в процессе сохранения / импорта страниц товаров / категорий / cms. Так что вам может понадобиться программный способ загрузки и сохранения категорий
mp196
Можете ли вы предложить мне ссылку на создание сценария для этого.
Арун Карнават
Вам нужно повторно проиндексировать снова.
Вайбхав Джайн
Я уже попробовал индексирование, в Magento 2 нет индекса перезаписи URL, поэтому он не работает. У меня теперь снова переиндексация, она не работает
Арун Карнават
1
Для продуктов вы пытаетесь выбрать все из сетки, а затем выбрать атрибуты обновления и на вкладке веб-сайтов выбрать веб-сайт (хотя продукты уже назначены на тот же веб-сайт). Это приведет к повторному сохранению продукта и может привести к перезаписи URL.
mp196

Ответы:

16

Этот модуль устарел, вы можете использовать этот модуль вместо

Скачать с помощью Composer;

композитор требует elgentos / регенерация-каталог-URL

Настройка php bin / magento: обновление

Регенерация URL для всех продуктов и глобального магазина

php bin / magento регенерирует: продукт

Восстановить URL для продуктов с идентификатором (1, 2, 3, 4) для магазина 1

php bin / magento регенерирует: продукт: url -s1 1 2 3 4

Ведущий разработчик
источник
этот модуль глючит, но все же может помочь в некоторых случаях.
Гедиминас
Да, и для нас будет полезно использовать эти методы, чтобы вызвать перезапись URL продукта.
Ведущий разработчик
1
В настоящее время не работает в 2.1.9 ...
Spyrule
@Spyrule Я на 2.1.9 и опытных проблем. Однако после того, как я зарегистрировал мою проблему, кто-то указал мне на этот запрос, который еще не был одобрен, но работает на меня: github.com/Iazel/magento2-regenurl/pull/21/commits/…
Дэвид Уилкинсон
@ Гердиминас, о каких ошибках ты знаешь?
Гарри
19

Вы можете использовать Regenerate Url rewrites extension (оно позволяет регенерировать Url перезаписывает продукты и категории).

Чтобы заново сгенерировать все переписывания URL-адресов категорий / продуктов во всех магазинах (он поддерживает мультимагазины), выполните:

$> bin/magento ok:urlrewrites:regenerate

Чтобы восстановить URL перезаписывает в определенном представлении магазина (например: идентификатор представления магазина равен "2"):

$> bin/magento ok:urlrewrites:regenerate 2
Олег Коваль
источник
1
Это расширение работает идеально для меня. Спасибо за ваше продление.
Мапаладия
это работает очень хорошо! Спасибо!
LucScu
Это удаляет старые переписывает?
Мэтью Макленнан
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
th3pirat3
источник
Это расширение прекрасно работало для меня в 2.1.9. Помог также идентифицировать дубликаты URL-адресов по идентификатору (хотя было бы полезно небольшое обновление, чтобы перечислить sku).
Спируль
Это расширение не работает для меня magento 2.2.9
jruzafa
3

На самом деле есть простой способ исправить это без особых проблем. Для людей TL: DR выделены жирные части.

Сначала нужно проверить одну вещь; если у вас несколько просмотров магазина, зайдите в продукт и переключите вид на конкретный вид. Прокрутите вниз и убедитесь, что URL-ключ установлен на «Использовать значение по умолчанию». Если это не проверено, оно никогда не будет генерироваться. Я думаю, что это может произойти, когда вы импортируете продукты M1. У меня было более 200 продуктов, которые нужно было подправить.

Это исправление также помогает, если вы делаете трюк, когда переключаете свой магазин на другой корень и обратно, что очищает все. Включая ваши пользовательские. И это может закончиться только с URL категории. Не уверен, почему генерация URL-адресов для продуктов завершается неудачей, но я думаю, это потому, что Magento пытается создать слишком много ссылок в одной операции, которая завершается неудачей.

Так что дай этому шанс. Откройте окно перезаписи URL и запишите количество записей. Это даст вам знать, если это работает.

Перейдите в категорию первого уровня (по умолчанию она не работает, поскольку не имеет URL-ключа). Прокрутите вниз до поисковой оптимизации / URL-ключа. Добавьте X в конец ключа. Снимите флажок «Создать постоянное перенаправление для старого URL», это только добавит больше работы к операции. Сохраните свою категорию.

Повторите операцию и удалите X, снова снимите флажок «Создать постоянный редирект для старого URL», потому что вам не нужно, чтобы эти старые URL засоряли таблицу. Сохраните снова.

Обновите страницу перезаписи URL, и вы должны увидеть новый номер и новые блестящие URL.

Повторите по мере необходимости.

К вашему сведению, действительно большие категории могут истечь. Так что в этих случаях делайте меньшие подкатегории сами. На моем сервере этот порог составляет около 400 записей.

Magento достаточно умен, чтобы делать ссылки на категории выше ваших подкатегорий. Он также достаточно умен, чтобы, когда он видит продукт в другой категории, он также создает ссылки для него.

Мне потребовалось некоторое время, чтобы понять, почему я вижу, что все меньше и меньше ссылок добавляется при переходе по списку категорий. Это было потому, что большинство продуктов уже были на столе, и остались те отставшие, которые раньше не появлялись.

Brokentusk
источник
0

Итак, у меня возникла эта проблема с продуктами, и я исправил ее, используя функцию массового обновления, чтобы удалить все продукты из магазина, а затем повторно добавить их. У меня не было очень много категорий, поэтому я просто вошел и восстановил их.

В целом, я думаю, что лучше всего избегать тактики оле-усечения и регенерации, которую мы использовали в Magento 1. Если ваш продукт выглядит неправильно, просто сделайте то, что я написал выше, и это должно исправить их.

espradley
источник
0

Насколько я знаю, Magento 2 не предоставляет эту функцию, но я использую это расширение

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

из этого я могу восстановить категорию и все URL продукта.

Примечание: я не продвигаю расширение, поэтому я использую это расширение, и оно весьма полезно для меня.

кузнец
источник
0

У меня тоже была эта проблема, я использую magento 1.9.2.4, magento не предоставляет никакого метода для регенерации пользовательских URL. Итак, то, что я сделал, было немного вне стола, и это решило проблему, я никогда не пробовал расширение перезаписи URL magento, поэтому не могу сказать, как они работают.

Примечание. Возможно, вам не следует учитывать это, если у вас слишком много пользовательских перезаписей URL.

Magento регенерирует перенаправления по умолчанию, поэтому, если пользовательская перезапись вызывает проблему, вы можете обрезать таблицу core_url_rewrite из базы данных magento .

введите описание изображения здесь

Обязательно сделайте резервную копию базы данных, прежде чем сделать это.

Lalit838
источник
В этом весь смысл, в отличие от magento 1, magento 2 не имеет индекса для регенерации URL. Вопрос касается Magento 2.1
Арун Карнават
0

К сожалению, ни одно из этих расширений / модулей не работает для меня. У меня около 4000 продуктов и переход с Magento 1.9.2.4 на 2.2.2. Я использовал инструмент Data Migration, и он отличался от этой проблемы.

Некоторые из моих продуктов имеют URL-ключи, а некоторые нет. У меня есть только один магазин, который расстраивает. Похоже, что Magento считает админа магазином.

Единственное, что сработало для меня, это импорт товаров с опцией «заменить». И для целей SEO я не хочу менять URL-адреса своих продуктов, даже если они просто добавляют число после.

Я собираюсь попытаться удалить переписывание URL только для продуктов.

blueflymedia
источник
0

Я столкнулся с подобной проблемой. В Magento 1 можно было обрезать таблицу перезаписи URL и переиндексировать. Magento 2 не имеет индексатора перезаписи URL, так что это не вариант.

Многие предлагают расширение Iazel. Я пошел с расширением от Ольгег Коваль , и это работало прекрасно. Запустив Magento 2.2, он удалил все существующие переписанные URL-адреса и восстановил их для всех представлений магазина. Ноль проблем.

SL02
источник
0

Все, что вам нужно сделать для регенерации перезаписей, это инициировать переписывание. Перейдите к категории или продукту и измените его URL в разделе SEO продукта / категории, добавив «a-» в начале. Например:

Url = "product-name" New Url = "a-product-name"

Это вызовет перезапись и повтор всех остальных перезаписей.

Rupi
источник
Это работает, только если у вас есть несколько переписываний. С более чем 100 продуктами, прикрепленными к старому URL, это неосуществимое решение.
Жак