元URLが下記のものを、
http://xxx.com/moto.cgi?a=xx&b=yy
http://xxx.com/moto.cgi
新しく下記のように書き換えたいと思っています。
http://xxx.com/moto/xx
http://xxx.com/moto/
今は
http://xxx.com/moto/xx&b=yy
と、全ての?以降をそのまま移行することはできていますが、余計な&b=yyを消せずにいます。
今は正規表現は下記のようなものを書いています。
RewriteCond %{QUERY_STRING} ^a=(.*)$
RewriteRule ^moto\.cgi$ /moto/%1 [R=307,L]
いろいろいじってますが、うまくいかないので、意見頂けると助かります。
よろしお願いします。
これを試してみてください。
RewriteCond %{QUERY_STRING} a=([^\&]+) RewriteRule ^moto\.cgi$ /moto/%1 [R=307,L]
RewriteCond %{QUERY_STRING} ^a=(\w+)
RewriteRule ^moto\.cgi$ /moto/%1 [R=307,L]
これならどうでしょうか?
う~ん、ルールの全体を見てみないとなんとも分かりませんね
いろいろ調べてみたところ、
RewriteRule ^moto\.cgi$ /moto/%1? [R=307,L]
と、最後に?を付けることで、クエリーの引き継ぎを止めることができました。
上のNo.2の正規表現と組み合わせて、求める結果がでました。
どうもありがとうございました!
どうもありがとうございます。
2012/10/24 14:50:32試してみたところ、うまくいきませんでした。
初めの?以降がそのままあとにくっついてきています。
リライト後のURL
http://xxx.com/moto/xx?a=xx&b=yy