Uma coisa que sempre faço, mas sempre esqueço como fazer é habilitar o mod_rewrite do Apache.
Para quem não conhece, esse é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita (baseadas em um parser de expressões regulares).
Basicamente o módulo permite a reescrita de URL’s on the fly.

Para habilitar o módulo no Apache basta esta linha:

sudo a2enmod rewrite

Agora abra o arquivo de configuração:

sudo gedit  /etc/apache2/sites-available/default

Procure no seu arquivo a entrada “AllowOverride None”, no meu caso estava na linha 11.
Altere esse valor para “AllowOverride All” .
Salve o arquivo e reinicie o Apache.

sudo /etc/init.d/apache2 restart

Basicamente é isso, agora já é possível reescrever  URL’s.