Com a ajuda da resposta de Teros, apontando-me na direção certa, resolvi minha regra de reescrita.
O primeiro passo foi combinar com% {QUERY_STRING}.
RewriteCond %{QUERY_STRING} ^md5=([0-9a-f])(&)id=([0-9])(&)(.*)$
O segundo passo foi reescrever o URL inteiro. Meu erro foi pensar que eu poderia modificar apenas a string de consulta.
RewriteRule ^(.*)$ https://myserver.com/getpdf/download?md5=%1&id=%3&%5 [N]
Algumas dicas
- % 1 no RewriteRule usa grupos do RewriteCond
- $ 1 usaria grupos da regex no RewriteRule, em vez
- Reescrever usa expressões regulares compatíveis com Perl (PCRE). Eu usei esse testador para verificar meu regex - link
- Google "Aprenda o Apache mod_rewrite: 13 exemplos do mundo real"
- A introdução do apache para reescrever, e a imagem que mostra o básico, ajuda - link (essencialmente um caso de RTFM :))
Espero que isso ajude os outros perdidos no mundo da reescrita.