index.php?cmd=servizi, etc. Come funziona la cosa? Nel senso, nell'index.php c'è una funzione che se riceve come variabile cmd=servizi và alla pagina servizi?
più o meno.
intanto non è che "va" alla pagina servizi. diciamo che all'interno della pagina index.php c'è del codice il quale se vede che alla variabile cmd è associato il valore servizi allora fa dei lavori per visualizzare il contenuto che gli autori del sito avranno predisposto per i "servizi".
magari questo codice leggerà questo contenuto dalla tabella di un database, che è più o meno come funzionano quasi tutti i cms, joomla compreso.
E se così fosse perchè nella barra degli url non visualizza per es: servizi.php\.html ma index.php?cmd=servizi rimanendo sempre sulla index.php.
perché è la pagina index.php che "spara" in uscita il codice html necessario.
un esempio elementare:
<html>
<body>
buongiorno,
<?php
$cmd = $_GET['cmd'];
if ($cmd=="servizi") {
echo "<strong>facciamo i servizi</strong>";
} elseif ($cmd=="prestazioni") {
echo "<em>eseguiamo prestazioni</em>";
} else {
echo "stiamo tutto il giorno a mangiare il cocomero";
}
?>
</body>
</html>
questa potrebbe essere una minimalissima index.php, che resta sempre quella, ma se l'url è index.php?cmd=servizi scriverà "buongiorno, facciamo i servizi" in grassetto, se invece l'url è index.php?cmd=prestazioni scriverà in corsivo "buingiorno, eseguiamo le prestazioni".
domanda per te: e se l'url fosse index.php?cmd=lavori che succederebbe?
Ho notato che questa cosa la si fà anche con pagine .html quindi non possono esistere funzioni in pagine html.
Spiegatemi bene questa cosa per favore, grazie 1000 
non è detto, non ti fidare solo delle estensioni. in html non ci sono funzioni, vero, ma un file il cui nome finisca con .html potrebbe non contenere solo html.