Uff, ho risolto, infatti non era un problema si htaccess, come temevo, ma di configurazione di sistema.

Prima di poter usare gli .htaccess va fatta questa cosa, lo spiego così altri non cadono in errore come me

Ho risolto sia sotto ambiente Ubuntu linux che Windows.

Soluzione Ubuntu con Apache2:

1° Attivare il mod_rewrite
Assicurarsi che non sia già attivo chiedendo il phpinfo() e controllando alla voce Loaded Modules.
In caso non sia presente la voce mod_rewrite creare un link simbolico al modulo presente.

codice:
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2° Modificare le impostazioni di Apache2
Aprire in modifica il file /etc/apache2/sites-available/default
Modificare le occorrenze di AllowOverride None in AllowOverride All e salvare

3° Riavviare Apache: sudo /etc/init.d/apache2 restart


Soluzione Windows con Apache2 (stranamente meno complessa che su Ubuntu).

1° Modificare httpd.conf
Su XP il file si trova quì: C:\Programmi\Apache Software Foundation\Apache2.2\conf
Aprirlo, decommentare la riga LoadModule rewrite_module modules/mod_rewrite.so
Cercare tutte le occorrenze di AllowOverride None e cambiarle in AllowOverride All.
Salvare.

2° Riavviare Apache (in genere io lo faccio dall'iconcina tray)


Ora si può usare .htaccess.

Ovviamente ho dovuto correggere anche .htaccess che non funzionava, scrivendo:

codice:
RewriteEngine On
RewriteRule ^file([0-9]+).html index.php?id=$1 [L,QSA]
funziona esattamente come volevo.