That resembles the “Loopy Code” I discuss in my signature’s tutorial. I recommend a read of that but, in summary, You also are unaware that query strings can only be examined (in mod_rewrite) by RewriteCond statements (the tutorial notes that very quickly).
Basically, what you want is to redirect from a usable link to an unusable (human format) link and then ask Apache to devine what you want it to serve.
Instead,
Test whether the {REQUEST_URI} is the original request (best to check the code in the tutorial).
Capture the query string (in whole or parts) then redirect to new format.
Redirect new format to the “servable” format.
The first item is critical as it will prevent code looping.