ho trovato la soluzione, la posto perchè potrebbe essere utile a qualcuno:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^([0-9A-Za-z-]+)\.html gen.php?link=$1.html [L]
in poche parole la prima parte serve a dire: se il file esiste fisicamente allora prendi quello, se non esiste allora applica la regola
ciao