Magento 2でURL書き換えを削除して再生成する方法は?


23

最近、magento 2ストアに2つの追加ストアビューを作成しました。今、カテゴリと製品のURLはそれらの店のものではありません

例:http://example.com/catalog/category/view/s/pouches/id/20/ すると仮定されhttp://example.com/accessories/pouches.html

各製品とカテゴリを1つずつ保存すると、その製品またはカテゴリのURL書き換えが再生成されます。

しかし、多くの製品とカテゴリーがあります。

URL書き換えを再生成する方法はありますか

Magento 1.xのように、インデックスの再作成を介して実行できます。


Magento 2では、URL書き換えモジュールはインデクサーを使用して書き換えを作成しません。製品/カテゴリ/ cmsページの保存/インポートのプロセスで書き換えが生成されます。そのため、プログラムでカテゴリを読み込んで保存する方法が必要になる場合があります
-mp196

そうするためのスクリプトを作成するための参照を提案してもらえますか。
アルンカルナワット

再度インデックスを作成する必要があります。
ヴァイバブジャイン

Magento 2にはURL Rewrite Indexがありませんので、既にインデックスを作成しようとしました。したがって、機能しません。私は再び
インデックスを

1
試してみる製品はグリッドからすべて選択し、更新属性を選択し、WebサイトタブでWebサイトを選択します(ただし、製品は既に同じWebサイトに割り当てられています)。これにより、製品が再保存され、URL書き換えが再生成される場合があります。
mp196

回答:


16

このモジュールは非推奨です。代わりにこのモジュールを使用できます

Composerを使用したダウンロード。

composerにはelgentos / regenerate-catalog-urlsが必要です

php bin / magento setup:upgrade

すべての製品とグローバルストアのURLを再生成します

php bin / magento regenerate:product

ストア1のID(1、2、3、4)を持つ製品のURLを再生成します

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


そのモジュールはバグがありますが、それでもいくつかのケースで役立ちます。
ゲディミナス

はい、これらのメソッドを使用して製品のURL書き換えをトリガーすると便利です。
リードデベロッパー

1
現在、... 2.1.9では動作しません
Spyrule

@Spyrule 2.1.9を使用しており、問題が発生しています。しかし、私の問題をログインした後、誰かがhasntが承認されていることを、このプルリクエストに私を指摘し、まだ私のための魅力を作品:github.com/Iazel/magento2-regenurl/pull/21/commits/...
デヴィッド・ウィルキンソンに

@Gerdiminasどんなバグについて知っていますか?
ハリ

19

Rewrite a Url rewrites extensionを使用できます(製品とカテゴリのUrl rewritesを再生成できます)。

すべてのストアでカテゴリ/製品のすべてのUrl書き換えを再生成するには(マルチストアをサポート)、次を実行します。

$> bin/magento ok:urlrewrites:regenerate

特定のストアビューでUrlリライトを再生成するには(例:ストアビューIDは「2」):

$> bin/magento ok:urlrewrites:regenerate 2

1
この拡張機能は私にとって完璧に機能します。拡張機能をありがとう。
mapaladiya

とてもうまくいきます!THX!
LucScu

これは古い書き換えを削除しますか?
マシューマクレナン

1
まだ機能していますか?それは私のためではありません。
カービー

1
@OlegKovalバージョン1.3.1をインストールしましたが、それでも動作しません。では、この背後にある問題は何ですか?
チンタンカネリヤ

3

@mahendra Jellaの回答の更新では、同じ拡張子のこのブランチを試してください:https : //github.com/PascalBrouwers/magento2-regenurl/tree/feature/generate_category

この1は、カテゴリのURLを再生することができる、あまりにも

コマンドは次のようになります。

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

この拡張機能は、2.1.9でうまく機能しました。重複するURL製品をIDで識別するのにも役立ちました(ただし、SKUをリストするマイナーアップデートが役立つでしょう)。
スパイルール

この拡張機能は私にとっては機能しませんmagento 2.2.9
jruzafa

3

実際には、多くのトラブルなしでこれを修正する簡単な方法があります。TL:DRの場合、太字の部分が関連しています。

最初に確認することが1つあります。複数のストアビューがある場合は、製品に移動して、ビューを特定のビューに切り替えます。下にスクロールして、URLキーが「デフォルト値を使用」に設定されていることを確認します。これがチェックされていない場合、生成されません。これは、M1製品をインポートするときに発生する可能性があると思います。修正が必要な200以上の製品がありました。

この修正は、ストアを別のルートに切り替えて元に戻すトリックを行う場合にも役立ちます。カスタムのものを含む。そして、それはカテゴリーURLだけで終わります。製品のURL生成が完全に失敗する理由はわかりませんが、Magentoが1回の操作でリンクを作成しようとして失敗しすぎているためだと思います。

これを試してみてください。URL書き換えウィンドウを開き、エントリの数を書き留めます。これにより、動作するかどうかがわかります。

最初のレベルのカテゴリーに入ります(URLキーがないため、デフォルトでは機能しません)。[検索エンジン最適化/ URLキー]までスクロールします。キーの末尾にXを追加します。[古いURLの永続リダイレクトを作成する]のチェックを外すと、操作に作業が追加されるだけです。カテゴリを保存します。

操作を繰り返してXを削除し、「古いURLの永続リダイレクトを作成する」のチェックを外します。古いURLがテーブルを詰まらせる必要がないためです。もう一度保存します。

URL書き換えページを更新すると、新しい番号と光沢のある新しいURLが表示されます。

必要に応じて繰り返します。

参考までに、大きなカテゴリはタイムアウトになる場合があります。そのため、これらのケースでは、小さなサブカテゴリを単独で実行します。私のサーバーでは、そのしきい値は約400エントリです。

Magentoは、サブカテゴリの上にあるカテゴリのリンクを作成するのに十分スマートです。また、別のカテゴリの製品を見ると、そこへのリンクも構築するので十分にスマートです。

カテゴリリストを下っていくにつれて、リンクの追加が少なくなっている理由を理解するためにしばらく時間がかかりました。それは、大部分の製品がすでにテーブルにあり、以前は現れなかったストラグラーだけが残っていたからです。


0

そのため、製品にこの問題があり、一括更新機能を使用してストアからすべての製品を削除してから再度追加することで、この問題を修正しました。私はあまり多くのカテゴリーを持っていなかったので、入って、それらを再保存しました。

全体として、Magento 1で行ったole 'の切り捨てと再生成の戦術を避けるのがおそらく最善だと思います。製品の書き直しが間違っているように見える場合は、上記に投稿した内容を実行するだけで修正できます。



0

私もその問題を抱えていました。私はmagento 1.9.2.4を使用していますが、magentoはカスタムURLを再生成する方法を提供していません。だから私はやったことはほとんどありません、そしてそれは問題を解決しました、私はmagento url rewrite extensionを試したことがないので、彼らがどのように働くか言うことができません。

注-カスタムURLの書き換えが多すぎる場合は、これを考慮しないでください。

Magentoはデフォルトのリダイレクトを再生成するため、カスタム書き換えによって問題が発生した場合、magentoデータベースからcore_url_rewriteテーブルを切り捨てることができます。

ここに画像の説明を入力してください

その前に、必ずデータベースのバックアップを作成してください。


これがmagento 1とは異なり、magento 2にはURLを再生成するためのインデックスがありません。質問はMagento 2.1に関するものです
アルン・カルナワット

0

残念ながら、これらの拡張機能/モジュールはどれも役に立たなかった。約4000の製品があり、Magento 1.9.2.4から2.2.2に移行しています。私はデータ移行ツールを使用しましたが、この問題以外は魅力的なものでした。

私の製品にはURLキーがあるものとないものがあります。イライラする部分は1つだけです。Magentoは管理者をストアと見なしているようです。

私のために働いた唯一のものは、「置換」オプションで製品をインポートすることでした。また、SEOの目的のために、製品のURLを変更したくありません。たとえそれが後に数字を追加するだけであっても。

製品のURL書き換えのみを削除してみます。


0

同様の問題に遭遇しました。Magento 1では、URL書き換えテーブルを切り捨ててインデックスを再作成することができました。Magento 2にはURL書き換えインデクサーがないため、これはオプションではありません。

多くの人がIazel拡張機能を提案しています。Olgeg Koval拡張機能を使用しましたが、うまく機能しました。Magento 2.2を実行すると、既存のすべてのURL書き換えが削除され、すべてのストアビューに対して再生成されました。問題はありません。


0

書き換えを再生成するために必要なことは、書き換えを開始することだけです。カテゴリまたは製品に移動し、製品/カテゴリのSEOセクションでURLを変更します(先頭に「a-」を追加します)。例えば:

Url = "product-name"新しいUrl = "a-product-name"

これにより、書き換えがトリガーされ、他のすべての書き換えが再実行されます。


これは、少数の書き換えがある場合にのみ機能します。古いURLに100を超える製品が残っているため、これは現実的な解決策ではありません。
ジャック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.