Outras armadilhas:
1- Às vezes, é uma boa ideia desabilitar o MultiViews
Options -MultiViews
Não sou versado em todos os recursos do MultiViews, mas sei que ele atrapalha minhas regras mod_rewrite quando ativo, porque uma de suas propriedades é tentar 'adivinhar' uma extensão de um arquivo que ele procura. .
Vou explicar: suponha que você tenha 2 arquivos php em seu diretório da web, file1.php e file2.php e adicione essas condições e regra ao seu .htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ file1.php/$1
Você assume que todos os URLs que não correspondem a um arquivo ou diretório serão capturados por file1.php. Surpresa! Esta regra não está sendo respeitada pelo URL http: // myhost / file2 / somepath . Em vez disso, você é levado para dentro do arquivo2.php.
O que está acontecendo é que o MultiViews adivinhou automaticamente que o URL que você realmente queria era http: //myhost/file2.php/somepath e com prazer o levou até lá.
Agora, você não tem idéia do que aconteceu e, nesse momento, está questionando tudo o que achou que sabia sobre o mod_rewrite. Você começa a brincar com as regras para tentar entender a lógica por trás dessa nova situação, mas quanto mais testando, menos sentido faz.
Ok, resumindo, se você deseja que o mod_rewrite funcione de maneira que se aproxime da lógica, desativar o MultiViews é um passo na direção certa.
2- ativar o FollowSymlinks
Options +FollowSymLinks
Na verdade, eu não conheço os detalhes, mas já o vi mencionado muitas vezes, então faça isso.