Вы можете обусловить первое правило, чтобы оно не применялось в следующих конкретных случаях:
# Only apply the rule when the captured section does not start
# with public/ or assets/
RewriteCond $1 !^(public|assets)/
RewriteRule ^site/(.*) index.php?rewrite=$1 [L]
Похоже, что второе правило уже делает то, что вы ожидаете, так что если это не так, выВам нужно будет уточнить, в чем проблема.