RewriteRule の後に残っている終了文字列を削除する

RewriteRule の後に残っている終了文字列を削除する

あらゆることを試しましたが、うまくいかないようです :( 800 を超える URL があり、それらを単純な PDF ファイルを指すように書き換える必要があります。現在、次のリンクがあります:

http://subdomain.mydomain.com/?type=pdf&id=id123
http://subdomain.mydomain.com/?type=epub&id=id123

そしてこれが必要です:

http://subdomain.mydomain.com/pdf/id123.pdf
http://subdomain.mydomain.com/epub/id123.epub

htaccess と rewriteule のリファレンス ページを読みましたが、まだ何かが抜けています。終了文字列 (?type=pdf&id=id123) を削除できません。

私が持っているのは次のものです:

RewriteCond %{QUERY_STRING} ^type=pdf&id=(.*)$ 
RewriteRule /?$ pdf/%1.pdf

そしてもちろん、次のように誤って出力されます:

 http://subdomain.mydomain.com/pdf/id1234.pdf?type=pdf&id=id123

捨てられない?type=pdf&id=id123最後に

正しい方向へのご助力は大歓迎です。

答え1

フラグを追加してみてくださいクエリ文字列の破棄 [QSD]:

RewriteRule /?$ pdf/%1.pdf [QSD]

関連情報