Resolvi refazer as regras para o .htaccess ignorar extensões, anteriormente citado neste meu post. Agora o código ficou bem mais “enxuto”.

No código abaixo, existe somente uma regra, se o arquivo terminar em .php, diga que não existe. E existe uma opção chamada MultiViews.

A opção Multiviews diz, se não encontrar o arquivo abc (sem extensão), procure qualquer arquivo abc, com qualquer extensão, exemplo abc.php. E é assim que funciona.

RewriteEngine On
Options +FollowSymLinks +MultiViews

RewriteCond %{THE_REQUEST} \.php\sHTTP\/1\.[01] [QSA, NC]
RewriteRule .* - [L, R=404]

O código foi testado usando Apache 2, mas deve funcionar no Apache 1.3 também.

Lembre-se de testar, se o mod_rewrite esta funcionando corretamente, aqui no Ubuntu (8.04) eu tive que configurar o mod_rewrite “na mão” pra funcionar. Caso seja o seu caso, você pode seguir os passos descritos nesse post, que foi o que eu usei.

Atualizado em 08/09/2009

Adicionada a flag L (last) no RewriteRule, indicando que a regra deve ser considerada a última.