2007年12月13日(木) 17:50

mod_rewriteでQUERY_STRINGをゴニョゴニョする

mod_rewriteでクエリー(QUERY_STRING)を扱うときのメモ。

クエリーを残すリダイレクト

クエリーを残したままリダイレクトするには [QSA] オプションをつける。
RewriteRule ^/cgi-bin/.* / [QSA]


http://www.example.com/cgi-bin/hoge.cgi?q=foo



http://www.example.com/?&q=foo


となり、q=foo は保持される。


また、もともとクエリーがあれば、追加してくれる。

RewriteRule ^/cgi-bin/(.*)/.* /?a=$1 [QSA]


とすると


http://www.example.com/cgi-bin/hoge/hage.cgi?q=foo


http://www.example.com/?a=hoge&q=foo


となる。
もともとのクエリー q=foo が QSA オプションで保持されたもの、そして a=hoge が新たに書き換えられて追加されたクエリー。


クエリーを消す

逆に、クエリーを消すにはリダイレクト先に ? だけつけておく。

RewriteRule ^/cgi-bin/.* /?


http://www.example.com/cgi-bin/hoge.cgi?q=foo



http://www.example.com/


となり、q=foo は削除される。

このエントリーに最初のコメントを書いてみませんか?

名前  クッキーに保存 
エントリーナビ
mod_rewriteでQUERY_STRINGをゴニョゴニョする」は、
Webの技 カテゴリーの記事です。


関連エントリー
mod_rewrite サンプル集
PerlでOpenIDの認証デモ(コンシューマ)を作ってみた
いまさらMovableType3.3にタグ機能を追加してみた
Perlモジュールのまともなテストを書きたい(Devel::Cover)
つぶやきで吟じます!詩吟変換モジュール(Acme::Shigin)

トラックバック
このエントリーへトラックバックするURL (言及リンクのないトラックバックは無効です)