J'ai le fichier htaccess suivant, qui masque l'extension php et oblige toutes les URL à utiliser www :
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Pour la première partie, le crédit revient à cette réponse et la seconde à cette réponse .
Cela fonctionne parfaitement dans la plupart des cas, mais il y a un problème. Lorsqu'un utilisateur essaie d'aller sur http://example.com/foo (ou au lieu de "foo", n'importe quelle autre page) il redirige vers http://www.example.com/foo.php .
Comment puis-je le faire rediriger vers http://www.example.com/foo c'est-à-dire sans le .php ?