Apache htaccess Rewrite для файлов и папок с одинаковым именем

0

У меня есть следующие конечные точки 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]
  • 0
    Что вы подразумеваете под "вместо этого я попадаю в папку проекта на Apache". Вы получаете список файлов в этой папке?
  • 0
    @ Sumurai8 Да, он показывает список каталогов
Показать ещё 13 комментариев
Теги:
.htaccess

1 ответ

0
Лучший ответ

Я смог решить эту проблему, добавив DirectorySlash Off в мой .htaccess файл.

Apache автоматически добавляет конечную косую черту в конец URL-адресов, если существует каталог с таким именем.

После обновления файла .htaccess и перезагрузки сервера вам необходимо очистить кеш браузера (поскольку большинство браузеров добавит конечную косую черту в конец вашего запроса, если предыдущие запросы были автоматически перенаправлены).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню