You earlier rule wasn't working because you cannot match QUERY_STRING
using RewriteRule
. In any case you don't even need to match/capture query string as you just need QSA
flag here. QSA
(Query String Append) flag preserves existing query parameters while adding a new one.
You correct rule will be (with more correct regex and flags):
RewriteRule ^api/([a-z0-9_]+/[a-z0-9]+)/?$ index.php?api=$1 [QSA,NC,L]