.htaccess リダイレクト先にパラメーターを引き継がないようにする方法

EC-CUBEで構築されたECサイトをクローズする対応の中で .htaccess で指定ページやカテゴリをトップページへリダイレクトさせる対応を行ったのですが、カテゴリや商品詳細ページなどパラメーターがついているページからリダイレクトする際に “?category_id=1” のようなパラメーターも引き継いでしまいました。

パラメーターを引き継いでしまうリダイレクト

以下の方法では “http://example.com/products/list?category_id=1” にアクセスすると “http://example.com/?category_id=1” と意図とは違いパラメーターを引き継いでしまいます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^products(.*) http://example.com/ [R=301,L]
</IfModule>

パラメーターを引き継がないリダイレクト

パラメーターを引き継がないようにするにはリダイレクト先のURLの後ろにクエスチョンマーク?」を追加することで回避出来ます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^products(.*) http://example.com/? [R=301,L]
</IfModule>

コメント

タイトルとURLをコピーしました