次のリダイレクトが機能すると思います。クエリ文字列にない場合はリダイレクトさid=れ、クエリ文字列に追加id=somenumberされますsomenumberが、サイトマップの背後にある番号です。
RewriteCond %{QUERY_STRING} !^(.*&|)id=
RewriteCond %{QUERY_STRING} ^(.*&|)sitemap=([0-9]+)(&.*|)$
RewriteRule ^ %{REQUEST_URI}?id=%2 [QSA,R,L]
ここで使用したものを簡単にまとめます。%{QUERY_STRING}と同様に、変数です%{REQUEST_URI}。正規表現の!前に、その正規表現を否定します (ala は「含まない」)。%2最後の の 2 番目のキャプチャ グループに置き換えられRewriteCondます。この場合、 によってキャプチャされたものに置き換えられ([0-9]+)ます。フラグは、QSA(クエリ文字列の追加)、R(リダイレクト、デフォルトは一時的なリダイレクト)、およびL(このルールが一致する場合、書き換えを停止します。これは、作成される新しいリクエストには影響しません) です。ドキュメントはここにあります。