kyuuuuuuuuuuriのブログ

うぇぶエンジニアになりたくてなりたくて震えるもろきゅうの日記です

リライトでURLのパラメータを扱うとき

パラメータつきのURLをapacheでリライトして、
新しいURLに取得したパラメータを埋め込んでリダイレクトさせる処理をします。

RewriteRule ^/hoge/piyo?name=([^/]+) http://[hostname]/new/hoge/piyo/$1 [R=301,L]

これで行けると思ったけどだめだった
RewriteRuleは、クエリ文字列(URLパラメタ)無しのURIしか見ない。
みたいです。

どうやったら取得できるのか

RewriteCond
を使ってパラメータを取得します。

こう

RewriteEngine On
RewriteCond %{QUERY_STRING} id=([^/]+)$
RewriteRule ^/hoge/piyo$ http://[hostname]/new/hoge/piyo=%1 [R=301,L]


できたー(∩´∀`)∩