Autres pièges:
1- Parfois, c'est une bonne idée de désactiver les MultiViews
Options -MultiViews
Je ne connais pas bien toutes les fonctionnalités de MultiViews, mais je sais que cela gâche mes règles mod_rewrite lorsqu'il est actif, car l'une de ses propriétés est d'essayer de `` deviner '' une extension d'un fichier qu'il pense que je recherche .
Je vais vous expliquer: Supposons que vous ayez 2 fichiers php dans votre répertoire web, file1.php et file2.php et que vous ajoutez ces conditions et règle à votre .htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ file1.php/$1
Vous supposez que toutes les URL qui ne correspondent pas à un fichier ou à un répertoire seront récupérées par file1.php. Surprise! Cette règle n'est pas respectée pour l'url http: // myhost / file2 / somepath . Au lieu de cela, vous êtes pris dans file2.php.
Ce qui se passe, c'est que MultiViews a automatiquement deviné que l'URL que vous vouliez réellement était http: //myhost/file2.php/somepath et vous y a volontiers emmené.
Maintenant, vous n'avez aucune idée de ce qui vient de se passer et vous remettez en question tout ce que vous pensiez savoir sur mod_rewrite. Vous commencez alors à jouer avec les règles pour essayer de donner un sens à la logique derrière cette nouvelle situation, mais plus vous testez, moins cela a de sens.
Ok, en bref, si vous voulez que mod_rewrite fonctionne d'une manière qui se rapproche de la logique, désactiver MultiViews est un pas dans la bonne direction.
2- Activer FollowSymlinks
Options +FollowSymLinks
Celui-là, je ne connais pas vraiment les détails, mais je l'ai vu plusieurs fois mentionné, alors faites-le.