apache — правильный способ скрыть расширение .php при создании приложения

Для последнего проекта веб-сайта (базовый веб-сайт с контактной формой 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

Должен ли я добавить что-то или я делаю это неправильно. Как правильно добиться этого. Как вы, ребята, делаете это?

2

Решение

Чтобы он работал в подкаталоге appfolder вам нужно заменить:

RewriteBase /

от

RewriteBase /appfolder/

В противном случае показанный код попытается найти любой .php файл в корне сайта.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]