De entrada te sugiero cambiar la regla del .htaccess a algo como:
    
Código Apache:
Ver originalRewriteRule ^(.*)$ index.php [L,QSA]
  
No recuerdo qué hace la parte del [L,QSA], pero evitas incluir el ? en la URL que interpretará PHP. 
Luego, en tu controlador:    
Código PHP:
Ver original// Obtienes la URL real, no la que proporciona APACHE:
$url = $_SERVER['REQUEST_URI'];
 
// Incluso puedes revisar si estás recibiendo parámetros por $_GET