Se você solicitou /styles/main.css
, então seria um arquivo no sistema de arquivos e o RewriteRule não seria processado. O Apache simplesmente serviria o arquivo.
Se você solicitar /foo/bar
e isso não existir, o RewriteRule será processado e a solicitação se tornará /app_dev.php
, no entanto, o PHP ainda terá acesso à URL original, antes da reescrita ocorrer. Usando isso, um framework como o symfony pode servir páginas diferentes para URLs diferentes, mesmo que o arquivo PHP seja o mesmo todas as vezes.