non è l'unica soluzione, in realtà

puoi fare una cosa del tipo

/<id>/<valore1>/<valore2>/index.php

che nasconde apparentemente la presenza di una query string ai meno esperti

dopodichè in un file .htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^/([0-9]+)/(.+)/(.+)/index.php[\?(.+)]?$ index.php?id=$1&chiave1=$2&chiave2=$3&$4

naturalmente cambia chiave1 / chiave2 e i pattern relativi in modo adatto alla tua applicazione