directives such as Redirect and RedirectMatch cannot "see" query strings appended to URLs -- Note that terminology there, as it is key; A URL locates a resource -- as its name states. But a query string is data to be passed to that resource (e.g. a script), and plays no part in locating it on the Web. Therefore, directives which examine only URLs pay no attention to query strings.
The solution is to
use mod_rewrite instead of mod_alias, and to check the query string explicitly.
(Quelle:
http://www.webmasterworld.com/apache/3812383.htm)