У меня есть следующие конечные точки API:
/api/project
/api/project/start
/api/project/end
Эти конечные точки поддерживаются файловой структурой, которая выглядит так:
/api/project.php
/api/project/start.php
/api/project/end.php
В настоящее время я использую .htaccess
чтобы сделать расширение .php
необязательным для пользователя API.
Я заметил, что если я ударил /api/project
без расширения .php
, я попал в папку project
на Apache вместо файла project.php
.
Должно ли все-таки учесть это в файле .htaccess
или с помощью другого метода?
Мой текущий .htaccess
переписать правила
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
Я смог решить эту проблему, добавив DirectorySlash Off
в мой .htaccess
файл.
Apache автоматически добавляет конечную косую черту в конец URL-адресов, если существует каталог с таким именем.
После обновления файла .htaccess
и перезагрузки сервера вам необходимо очистить кеш браузера (поскольку большинство браузеров добавит конечную косую черту в конец вашего запроса, если предыдущие запросы были автоматически перенаправлены).