Avevo dei problemi con il mod_rewrite sul server (linux)con PHP installato come CGI e non come modulo. Forse erano questi i problemi del non funzionamento della regola di riscrittura dell'URL.
Allora il gestore del mio server mi ha spostato il dominio su Apache2.
A questo punto il server riconosce la regola di riscrittura fornendo la "finta pagina" con tutti i suoi contenuti.
Però le variabili $_GET non sono più riempite: ottengo solamente un array vuoto.
Io ho risolto la situazione intercettando non la variabile $_GET, ma $_SERVER['PHP_SELF']. Nella pagina di destinazione eseguo uno script del tipo

(ammesso che il mio link sia: http://sito/pagina/-id-quellochevuoi.html)
$pagina = $_SERVER['PHP_SELF'] ;
$divisore = explode("-", $pagina);
$id = $divisore[1];

in questo modo ottengo di nuovo la mia $id.
Non so né come mai Apache2 si comporti così, né se questa strada altrenativa contenga una qualche controindicazione....