htaccessでredirectする際に、パラメタ(query string)を引き継ぐ

wordpressを使うとき等に、htaccessにはお世話になってますが、以前$_GETをrewrite_condでひっかけて、redirect先へ引き継ごうとして、断念していました。
どうしても、正規表現でquery string(?key=valueの部分)がひっかけれなくて。

その時は無理矢理、http://test.com/key/value/の形式にリダイレクトして、プログラム側で、REQUEST_URIから、パラメタ名と、値を取得したんですが、今回いいものを見つけました。

それが、QSAオプション。Query Strins Appendの略です。
これをつけておくと、リダイレクトをかけても、そのままquery stringも引き継いでくれます。しかも、redirect時に、自分でquery stringを付け足しても、うまいこと後付してくれる賢さです。

http://www.hoge256.net/2008/04/119.html

サンプルはこんな感じ。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/test/
RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|png|css|html)$
RewriteRule ^(.*)$ / [P,L,QSA]