Для последнего проекта веб-сайта (базовый веб-сайт с контактной формой AJAX + PHP) я использовал нижеприведенное .htaccess
файл, чтобы скрыть расширение. Он отлично работал на сервере Hostgator.
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]
## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
Сейчас я собираюсь построить новое приложение (функциональная & динамический). Я скопировал .htaccess
файл в мой localhost / appfolder / (WAMPserver). Также включен rewrite_module
, Однако это не работает по некоторым причинам на локальном хосте.
Проверьте сообщение об ошибке, полученное при попытке запустить тот же веб-сайт на локальном хосте с указанным выше .htaccess
(Работает на Live Server, но не на localhost)
**Not Found**
The requested URL /services.php was not found on this server.
Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80
Должен ли я добавить что-то или я делаю это неправильно. Как правильно добиться этого. Как вы, ребята, делаете это?
Чтобы он работал в подкаталоге appfolder
вам нужно заменить:
RewriteBase /
от
RewriteBase /appfolder/
В противном случае показанный код попытается найти любой .php
файл в корне сайта.
Других решений пока нет …