ok, adesso ho capito come lo stai facendo, ma non riesco a capire fino in fondo qual e' il problema, cosa non riesci a fare, o cosa vuoi fare?

index.php?admin=index => questo significa che hai una variabile admin ($_GET) di valore index
index.php?utenti=id => qui hai una variabile utente con valore id

con il codice che ti ho inviato riesci a capire che variabile hai (admin oppure utenti)
Codice PHP:
$pagina 'home.php'//default
if(!empty($_GET['admin'])){ //index.php?admin=xxx //admin
    
$pagina 'admin/'$_GET['admin'] .'.php';
} elseif(!empty(
$_GET['utenti'])){ //index.php?utenti=xxx //utenti
    
$pagina 'utenti/'$_GET['utenti'] .'.php';
} elseif(!empty(
$_GET['content'])){ //index.php?content=xxx //content
    
$pagina 'content/'$_GET['content'] .'.php';

adesso se vuoi controllare se esiste oppure no il file che stai richiamando devi usare la funzione che prima ti indicato file_exists

al posto di index.php?admin=index, forse e' meglio admin/ (admin/index.php)