mod_rewrite è una brutta bestiaccia. A mio avviso la documentazione fornita dalla apache foundation è da processo di Norimberga: per farla breve devi provare e riprovare per capire come funziona (una specie di reverse engineering) o trovare della documentazione decente da qualche altra parte (cosa che non mi è riuscita).
Per il tuo problema devi tenere presente quanto segue: la regola di RewriteRule NON VIENE applicata sull'URI completo di parametri, ma solo sull'URI nudo e crudo (senza i parametri GET, cioè tutto ciò che viene dopo il ?).
Per fare quanto chiedi, devi fare una roba del genere:
L'unico modo che hai per accedere alla query string (cioè a "?a=nome&id=numero") è usare RewriteCond, non ce ne sono di banane. Applichi il pattern alla query string e, se verificato, esegue il successivo RewriteRule.codice:RewriteEngine On RewriteCond %{QUERY_STRING} a=([^&]+)&id=(.*) RewriteRule (.*) $1/%1/%2 [L]
Nel RewriteRule puoi usare $n (dove 0<n<9) per riferirti alle parentesi tonde in RewriteRule e %n (dove 0<n<9) per riferirti alle parentesi tonde in RewriteCond.