Magentoに昔からある仕組みとして、「URL書き換え」というものがあります。
特定のURLを別の形式に書き換えるための機能で、最初期のバージョンから提供され続けています。

例えば商品ページのURLは、本来は以下のような作りをしています。

http(s)://ドメイン名/catalog/product/view/id/商品ID/

「URL書き換え」はこのURLを以下のような形式にする機能です。

http(s)://ドメイン名/商品のURLキー.html
http(s)://ドメイン名/カテゴリのURLキー/商品のURLキー.html

以前はプログラムが生成したようなURLよりも、意味のある単語で構成されたURLのほうが検索エンジンに評価されやすいとされていました。
そのため、Apacheのmod_rewriteを使って複雑な書き換えパターンを定義したりするケースも以前はよく見られました。思ったように書き換えができなくて試行錯誤したのは良い思い出です。

Magentoにおいては、1系の頃からアプリケーションに統合された機能としてURLの書き換えが行われてきました。
難しいルールを書かなくても簡単にURL書き換えが実現できたのは初期バージョンのMagentoの強みでもありました。

Magento2で変わった「URL書き換え」データの位置づけ

この「URL書き換え」ですが、Magento1の時代はインデックス扱いでした。
データを全部削除した場合でも、インデックスの再構築で簡単にもとに戻すことができました。
(ただし、システムが自動作成するものだけです。管理者が独自に定義したものは消えてしまいます。)

Magento2系になり、「URL書き換え」はインデックス扱いではなくなり、ただの定義データに変わりました。
その結果、以下のような現象がよく見られるようになっています。

  • 商品を複製した場合に、URL書き換えデータが作成されない
  • URL書き換えデータを削除したあとで商品を保存し直しても、再作成されない

今回はURL書き換えデータが消えてしまった場合の

  • 個別データの再作成方法
  • 大量の欠損データの再作成方法

について解説したいと思います。

「URL書き換え」はどこにあるか

URL書き換えデータは、管理画面の

マーケティング>URL書き換え

で確認できます。

URL書換機能を使用してMagento上のページをリダイレクトする」でMagento1の頃の機能紹介をしていますが、Magento2系でも基本的に同じです。

地道に管理画面から「URL書き換え」を作成する方法

URL書き換えデータを作成する場合は、「URL書き換え」一覧画面の「新規作成」ボタンを押し、作成画面にアクセスします。
ドロップダウンリストから作成したいものを選びましょう。

作成したいものを選択

カスタム以外の場合は、データ選択画面が表示されます。
カテゴリの場合はカテゴリツリー。商品とCMSページの場合は一覧が表示されます。

商品を選択

作成したいものを選ぶと、画面が切り替わり、もとの編集画面になります。

データセット済

あとはデータを確認して保存すればOKです。
欠損データの件数が少ない場合はこの手順を繰り返せば良いので、数件であれば管理画面からのほうが早いかもしれません。