Недавно мой веб-хостинг (сентябрь 2011 г.) обновил свои серверы Apache до более новой версии Apache, и мой старый код .htaccess
для отображения URL-адресов без расширений больше не работал. После значительного объема копирования кода (который, вероятно, работал с более старыми версиями ОС Apache) и неудачного тестирования я смог определить, что следующий код работает на моем сервере и некоторых других:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php http://www.example.com/$1 [R=301,L]
Дайте этому попытку - -Multiviews
, казалось, был ключевым элементом, чтобы заставить его работать.