Назад | Перейти на главную страницу

Сервер Ubuntu: Apache2, похоже, прикрепляет .php к URI

Я использую тоник библиотеки php для веб-сервисов. Мой ресурс в качестве примера на

base-uri/myResource

Теперь, если в этом каталоге существует файл myResource.php, URL-адрес mod_rewrite будет

base-uri/myResource.php

который затем не выполняет условия перезаписи, и мое приложение ломается (приложение работает на apache в Windows)

Если я переименую myResource.php в myResourceClass.php (или что-нибудь еще), он будет работать.

Таким образом, кажется, что apache или one, если его модули предполагают, что с помощью base-uri / myResource я хочу вызвать base-uri / myResource.php, но только если myResource.php существует.

Это общая проблема, или я могу где-то настроить, чтобы этого не происходило?

Спасибо!

РЕДАКТИРОВАТЬ:

видеть

Как настроить базовый mod_rewrite?

Ответ содержит то же наблюдение!

ОТВЕТ:

Проблема заключается в конфигурации Apache по умолчанию в Ubuntu:

Options Indexes FollowSymLinks MultiViews

MultiViews меняет request_uri с myResource на myResource.php.

Решения:

Я выбрал последний вариант, потому что он должен работать независимо от конфигурации, а у меня всего 3 таких файла, поэтому изменение заняло около 30 секунд ...

Проблема заключается в конфигурации Apache по умолчанию в Ubuntu:

Options Indexes FollowSymLinks MultiViews

MultiViews меняет request_uri с myResource на myResource.php.

Решения:

  • отключить MultiViews в .htaccess: Options -MultiViews
  • удалить MultiViews из конфигурации по умолчанию
  • переименуйте файл как пример в myResourceClass

Я выбрал последний вариант, потому что он должен работать независимо от конфигурации, а у меня всего 3 таких файла, поэтому изменение заняло около 30 секунд ...

Очень высока вероятность того, что .htaccess файл в папке, который проверяет, есть ли что-то с .php существует как файл, и если да, добавьте .php расширение.

Мой совет: проверьте наличие .htaccess файл в папке. Если он есть, и моего совета было недостаточно, пожалуйста, добавьте свой вопрос, чтобы мы могли пойти дальше.