[Apache] mod_rewrite でクエリ文字列を破棄する方法が良く分からない
Apacheのmod_rewriteモジュールを使って、不正なドメインでアクセスを正規のドメインへリダイレクトさせることをやった。
例えば以下のようなURLでアクセスがあったとする。
http://www.hogehoge.com/?name=eji
これを以下のURLへリダイレクトしたいとする。
この場合、以下のような設定を書いてあげればうまくリダイレクトされると思ったんだけど、金魚の糞のように?name=ejiがついてくる( http://www.hoge-hoge.com/?name=ejiにリダイレクトされる )。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.hogehoge.com$ RewriteRule .* http://www.hoge-hoge.com/ [R=permanent] </IfModule>
この勝手にくっついてくるクエリ文字列は、以下のように設定すると破棄してくれる( http://www.hoge-hoge.com/ にリダイレクトされる )。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.hogehoge.com$ RewriteRule .* http://www.hoge-hoge.com/? [R=permanent] </IfModule>
置き換えるURLの最後に「?」だけつけるとうまくいった。原因が良く分からない。仕様書とかに書いてあるのかな?