mod_rewriteでクエリ付きのURIをリダイレクトする

このエントリーをはてなブックマークに追加
はてなブックマーク - mod_rewriteでクエリ付きのURIをリダイレクトする
Share on Facebook

http://hige.jp/moja.php?category=1 → http://hige.jp/moja.php?category=999

というリダイレクトをApacheで実現するにはどうすればいいでしょうか?リダイレクトの方法はいろいろありますが、今回RedirectやAliasディレクティブは使えません。これらはクエリ文字列(?category=999の部分)を把握できないようです。

そんな時は、mod_rewriteの RewriteCond ${QUERY_STRING} を使うと良いです。具体的には以下の用にします。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{QUERY_STRING} category=1
    RewriteRule ^/moja.php /moja.php?category=999 [R=301,L]
</IfModule>

これでApacheを再起動すれば、リダイレクトが成功するようになっています。

参考

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>