Magentoでサイトを運用していると、ある特定のURLを他のURLにリダイレクトしたくなります。
そんな時はMagentoに標準で備わっている「URL書換機能」を活用しましょう。

URL書換機能をうまく使うことで、商品ページやカテゴリページに来たアクセスを、他のページやURLにリダイレクトさせることができます。

URL書換機能とは

URL書換機能は、Magentoに標準で備わっている機能の一つで、通常は商品やカテゴリの属性にある「URLキー」を使用して、検索エンジンに評価されやすいURLを生成するために使用されています。

例えば、カテゴリのURLは本来の形として、

/catalog/category/view/id/10

というようになっているのですが、URL書換機能を通すと、以下のようになります。

/sample-category.html

この書換パターンは、データベース上に格納されていて、標準の設定では商品やカテゴリのURLキーを変更すると、それまで使用していたURLから新しいURLに対して301リダイレクトを設定するようになっています。
この時Magentoは、古いURL書換データに対してリダイレクトフラグを付け、新しいデータを登録します。
そのため、頻繁にURLキーを変更するような運用をしていると、非常に多くのURL書換データがデータベース状に溜まっていくことになり、データベースが肥大化していきます。
それに伴って、インデックスの更新に時間がかかるようになっていきます。
Magento Enterprise 1.13以降では、この問題はかなり解消されているのですが、Community Editionにはフィードバックされていません。

ですから、まだ公開していない商品やカテゴリのURLキーを変更する際は、URLキーの入力欄の隣にある、リダイレクトを作成するためのチェックボックスのチェックを外しておくことが重要です。 

利用できるURL書換

URL書換では、

  • カテゴリ用
  • 商品用
  • カスタム

の3種類の書換を管理することができます。
カテゴリ用と商品用は、既に登録してあるカテゴリと商品に対するURL書換を設定します。
カスタムについては、任意のURLを別のURLに書き換えることができますが、書き換え元と書き換え先を正しく把握していないと、思った通りの結果が得られないことがあります。

さらにURL書換では、リダイレクトの方法として、

  • 301 Redirect Permanent
  • 302 Temporaly moved
  • リダイレクトなし

が利用できます。 

カテゴリや商品ページをCMSページにリダイレクトする

では、実際にカテゴリや商品ページをCMSページにリダイレクトしてみたいと思います。
今回はMagento Community Editionのサンプルデータに含まれている、「Electronics」カテゴリへのアクセスを、 CMS機能で作成された「About Us」ページにリダイレクトさせてみます。

最初に「Electronics」カテゴリのURL書換データを確認する

最初の作業として、「Electronics」カテゴリのURL書換データを確認します。
「URL書換管理」で一覧を表示させて、「リダイレクトパス」に「electronics.html」と入力して検索します。
そうすると、下の図のように結果が得られます。

URL書換一覧

サンプルデータには3つのストアビューが含まれているのですが、今回はEngishストアビューのURL書換の設定を変更してみましょう。

ID:4のデータの詳細を開くと、次の図のようになります。

ElectronicsのURL書換

catalog/category/view/id/13」という対象パスに対して、リダイレクトパス「electronics.html」が設定されています。

対象パスとはなにか

対象パスというのはシステムが実際に処理を行うパスのことで、「catalog/category/view/id/13」はcatalogモジュールのcategoryコントローラのviewアクションをIDという引数に13を与えて実行する、という意味です。
少し古いWebアプリケーションだと、「catalog/categorycontroller.php?action=view&id=13」 というような形になっていたかもしれません。

リダイレクトパスとはなにか

リダイレクトパスは訪問者がアクセスしてくるパスです。今見ている設定では、「electronics.html」となっています。
 つまり、URL書換機能では、リダイレクトパスに指定した値にURLが一致した場合、対象パスに指定したパスへと処理を転送させるようになっているのです。

この関係をよく覚えておいてください。

書き換えたいストアビューのURL書換データに「301リダイレクト」を設定する

では、先ほど表示させたURL書換データに「301リダイレクト」を設定します。
この設定をしておかないと、既にURL書換データが登録されているURLに対して、新しく書換データを登録することができません。

リダイレクト設定をするには、編集画面の下の方にある、「リダイレクト」というセレクトボックスで値を選択します。

リダイレクト設定を変更

選択したらすぐ保存しておきましょう。 

「Electronics」カテゴリから「About Us」ページへのリダイレクトを設定する

続いて「Electronics」カテゴリにアクセスした人を「About Us」ページに誘導するための設定をします。
先程はすでにあるデータを編集しましたが、今度は新しく作成します。

URL書換を新しく作成する場合は、

  • カテゴリ
  • 商品
  • カスタム

 の中から図のように選択ができます。ここでは「カスタム」を選択します。

作成する書換を選択

カスタムを選択すると、画面がリロードして、入力フォームが表示されます。

新規URL書換作成フォーム

では、値を入れていきましょう。次の図を参考にしてください。

URL書換入力例

最初に、「店舗」を選びます。先ほど301リダイレクトを設定したURL書換データと同じストアビューを選んでください。
異なるストアビューを選択すると、正しく動きません。

次に「IDパス」に値を入力します。ここはなんでも構いません。自分がわかりやすいように、かつ重複しないように指定してください。

そして「リダイレクトパス」を指定します。ここに指定する値は、先ほど301リダイレクトを指定したURL書換データの対象パスに入っていた値です。この例では「catalog/category/view/id/13」を入力しています。

さらに「対象パス」を指定します。最終的に訪問者がアクセスするパスなので「About Us」ページのパスを入力します。
この例では「about-magent-demo-store」を入力しています。

最後に「リダイレクト」をしています。「永久(301)」を選択します。

すべて入力し終わったら、保存します。フロントエンドから「Electronics」カテゴリにアクセスすると、「About Us」ページが表示されると思います。

おわりに

URL書換機能はMagentoのSEO機能を構成する機能のひとつです。
ぱっと見がとっつきにくく、わかりにくいのですが、うまく使いこなすことで、運用の自由度を上げることができます。

ただし,最初にも述べたとおり、あまり頻繁に商品やカテゴリのURLキーを変更してはいけません。
また、頻繁に商品のカテゴリへの関連付けや、カテゴリツリーの変更も避けるべきです。どのケースでも古いURLに対して新しいURLへのリダイレクトが標準では作成されるようにできているため、繰り返すほどにURL書換データが肥大化し、最後にはURL書換インデックスが再構築できなくなってしまいます。

便利かつ強力な機能なだけに、注意して使いこなすことが重要です。