I had the same problem yesterday (if I have understood correctly), i.e. the attempted 301 redirection just ended up at the homepage but with a long URL in the browser address bar including an unintended q= query.
After trying lots of things I put the following at the very top of my htaccess file:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^primer.html$ /free-advanced-english-coursebook.html [R=301,L]
That works (on my Revolution setup). People clicking old incoming links for the primer.html page get redirected to the new coursebook page (with friendly URLs on and using the alias to generate the new html file name).
Hope that works for you too.