Se você estiver usando o Apache, use reescrever via mod_rewrite
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
Isto irá reescrever seus URLs para »index.php? q = foo / bar / baz« de forma transparente.
As linhas 2. e 3. dizem ao mecanismo de reescrita para não reescrever o URL se ele apontar para um arquivo ou diretório existente. Isso é necessário para ter acesso aos arquivos reais fornecidos pelo servidor httpd.