Quel link è effettivamente "virtuale". Per generare link come quello, devi affidarti all'.htaccess, un file che permette di specificare al server web (Apache in questo caso) delle direttive da seguire per tutti i file contenuti nella cartella in cui l'.htaccess risiede. Tali direttive possono sovrascrivere quelle di default sel web server.
Nel tuo esempio, il link:
codice:
www.miosito.it/42/titolo-della-pagina/
probabilmente è in realtà:
codice:
www.miosito.it/pagina.php?id=42&titolo=titolo-della-pagina
Dato che il file pagina.php si trova nella cartella di root del sito, sarà qui che dovrai inserire il file .htaccess (ricorda che funziona SOLO con il web server Apache, sia sotto Linux che sotto Windows! IIS non sa cosa siano i file .htaccess. Inoltre, il punto all'inizio del nome è OBBLIGATORIO e il file non ha estensione, poiché è lui stesso un'estensione delle regole per la cartella in cui risiede. Ecco il perché del punto iniziale).
Nel file .htaccess indicherai la regola seguente:
codice:
RewriteEngine On
RewriteRule ^([0-9]+)/([^/]+)/$ pagina.php?id=$1&titolo=$2 [L]
Come vedi, la regola usa le regular expressions per riscrivere il percorso del link. Non si tratta in realtà di una riscrittura, ma di un redirect. In pratica, la regola dice:
Riga 1: "Attiva il motore di riscrittura degli URI (mod_rewrite)"
Riga 2: "Reindirizza alla pagina pagina.php qualsiasi pagina che ha un percorso del tipo: NUMERO/TESTO/. Richiama quindi pagina.php passandole in GET il valore di NUMERO come variabile id e di TESTO come variabile TITOLO".
La [L] finale indica che la riscrittura, una volta terminata correttamente, viene bloccata.
Le espressioni regolari tra parentesi tonde nel percorso "riscritto" corrispondono, in ordine, ai valori delle variabili di query string: ([0-9]+) viene associata a $1 e ([^/]+) viene associata a $2.
Nelle tue pagine PHP, devi scrivere i link come fossero link statici, ovvero seguendo la sintassi del percorso riscritto.
Quindi, quando scrivi un permalink ad un post con id=4 e con titolo="Titolo del post", devi prima di tutto convertire il titolo in URI (converti in minuscolo con strtolower(), usi str_replace() per sostituire gli spazi con dei "-" e per eliminare tutti i caratteri non validi per gli URI, come "!",",","?", ecc. Ti conviene crearti una funzione apposita). Poi scrivi il link nella forma:
codice:
http://www.miosito.it/4/titolo-del-post/
Quando andrai a cliccare sul link, Apache seguirà la direttiva che hai indicato nel file .htaccess e reindirizzerà il browser su:
codice:
http://www.miosito.it/pagina.php?id=4&titolo=titolo-del-post
Ovviamente devi accertarti che il mod_rewrite di Apache sia attivo sul server, altrimenti la cosa non funzionerà (se lo è, è indicato sotto la voce "Modules" della pagina generata dalla funzione phpinfo()). Per il resto, è utile studiare bene le regular expressions. 
PS: piccola curiosità su Aruba che mi ha fatto perdere mesi! Se il nome del file reale a cui il browser reindirizza (nel nostro es. "pagina") lo usi anche per indicare una "cartella virtuale" all'interno del percorso riscritto (ad es. ^pagina/([0-9]+)/([^/]+)/$), il rewrite non funziona!!!