EC-CUBE2からEC-CUBE3へバージョンアップ後のmod_rewrite設定について

EC-CUBE Advent Calendar 2017 22日目の記事です。

EC-CUBE2系からEC-CUBE3系へバージョンアップされたという方も中にはいるかもしれませんが、EC-CUBE2系から3系は内部構造もそうですがURLも変更されています。

URLが変更になるということは、長い間運用されていた方にとってはSEOとしては致命的なものとなりますし、別サイト等からリンクされていたら全て404になってしまいます。それを防ぐためにmod_rewriteを使ってリダイレクトさせる方法を以下に書きます。

EC-CUBE3.0.15を利用しています。

一番大事なページはやはり商品詳細ページとなります。

ECCUBEROOT/html/.htacccess

に以下を記述してください。

記述する場所は、 <IfModule mod_rewrite.c> に囲まれている箇所となります。

RewriteCond %{REQUEST_URI} products/detail.php
RewriteCond %{QUERY_STRING} ^product_id=([0-9]+)
RewriteRule ^(.*)$ /products/detail/%1? [R=301,L]

詳しい説明は省きますがこちらを記述することで今まで2系で利用されていたURLが3系の商品詳細画面へリダイレクトされます。 また、商品一覧は以下の通りです。

RewriteRule ^products/list.php(.*)$ /products/list$1 [R=301,L]

こちらは比較的簡単ですね。

その他のページについては一つずつ2系のurlを3系に合わせて変更していくだけです。

RewriteRule ^guide/privacy.php /help/privacy [R=301,L]

と一つずつ設定してください。 また独自にページを作成されていた時でも独自ページのURLを記述するだけで対応可能です。

また、URLを変更したいという時でも、

RewriteRule ^brand /guide/brand [R=301,L]

というように変更後のURLへリダイレクト設定を記述するだけです。

以上がmod_rewrite設定になります。広告を出稿していてURL変更が大変だという方などはこちらの設定を記述しておけば特に変更する必要はありません。もし動作しないなどがありましたらコメントをください。