mod_rewrite で query string の扱い

2009/02/11 | めも

評価対象のパス文字列中に含まれるもんだと思ってたら違って若干嵌ったので俺メモ.

/hoge/dir/file を hoge.cgi?d=dir&f=file に向ける的処理はありがちで問題ないんだけど,例えば hoge?a=b を unko?file=hoge&a=b に向けたいときとかに,? 以降全マッチさせるようなルールを書くと残念なことになる.

調べてみるとクエリー部分は %{QUERY_STRING}*1に入るそうなんでそれを向ける先に使って,

RewriteRule ^[a-zA-Z0-9_-]+$ unko?file=$0&%{QUERY_STRING}

という感じでやるとできる.

……のだが,それもまだ無知な感じで,[QSA] オプションつけると自動的にクエリーを保存再現してくれるようで.

RewriteRule ^[a-zA-Z0-9_-]+$ unko?file=$0 [QSA]

より平易.知ったかしてなんとなくで使わないでちゃんとドキュメント読みましょうという話.

  1. ? は含まれない. []

Trackback URL

この記事にはまだコメントがついていません。

コメントをどうぞ