Se você tem vários arquivos com o mesmo basename , então parece que você pode
ter um conflito com MultiViews . Tente desabilitar isso no seu arquivo .htaccess (ou configuração do servidor):
Options -MultiViews
MultiViews (parte de mod_negotiation) faz o mesmo tipo de coisa que você está tentando fazer com o mod_rewrite e eu suspeito que esteja "ganhando". Quando você solicita /asdf e asdf mapas a um nome de arquivo, o MultiViews tenta veicular um arquivo apropriado que corresponda ao tipo mime pretendido (o que pode explicar por que .js arquivos foram perdidos).
My understanding of the rewrite ruleset is this: 1) if the file being requested doesn't exist THEN 2) if the filename does NOT contain a period, redirect the request to [filename].php
Caso contrário, sua compreensão das diretivas mod_rewrite está bem correta, exceto que a ordem é inversa (o padrão RewriteRule é processado primeiro) ...
- Se o URL (o URL inteiro) não contiver um ponto.
- E a solicitação não é mapeada para um arquivo válido (é improvável que todos os seus arquivos tenham extensões de arquivo - portanto, talvez essa condição possa ser omitida).
- Reescreva internamente a solicitação adicionando uma extensão
.php.
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Não há necessidade de escapar de um período literal em uma classe de caracteres, e a sinalização NC é supérflua aqui.