Si on a un script index.php et que l'on veut lui passer toutes les URL qui n'existent pas sur le serveur, on peut mettre en place une ré-écriture au sein d'Apache :
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
De cette manière, si on demande la page http://site/valeur, le script recevra http://site/index.php?q=valeur. Plus joli !!

La config ci-dessus peut aussi être placée dans un .htaccess, mais il faut autoriser Apache à le lire.
AllowOverride FileInfo
ou
AllowOverride All
Pour que tout cela fonctionne, il faut que le module mod_rewrite d'Apache soit chargé.