Я пытаюсь перенести приложение PHP из Windows IIS в Linux (Debian) с веб-сервером Apache (v2.4).Я успешно изменил свой корень документа на /code/wwwroot
и использую файл конфигурации /etc/apache2/sites-available/000-default.conf
вместо .htaccess
для своей конфигурации (в документах Apache 2.4 сказано использовать файлы конфигурации в /etc/apache2/sites-available
, если у вас есть доступ кфайлы конфигурации сервера, которые я делаю).Вот что я использую для своей конфигурации:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /code/wwwroot
<Directory /code/wwwroot>
Options Indexes FollowSymLinks
AllowOverride None
FallbackResource /start.php
</Directory>
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Это работает почти так, как я ожидал.Когда запрашиваются файлы, найденные в /code/wwwroot/
, они обслуживаются.Если запрошенный файл / путь не существует, start.php
запускается и возвращается.Например, если мой запрос localhost/gadgasd.html
и т. Д., Он внутренне перенаправляет на start.php
.Однако для файлов с расширениями .php
, которых нет в Document Root, я получаю 404.Например, если запрос localhost/gadgasd.php
, я получаю 404 напрямую от Apache (я надеялся обработать 404 в моем коде, а не в Apache).Это поведение строго ограничено файлами с расширениями .php
, которых нет в Document Root.Я очень смущен этим поведением.Я установил правильные пакеты для использования php с apache (apt-get install -y php libapache2-mod-php
), и правило FallbackResource
работает для всех других расширений файлов.Что я делаю неправильно?Заранее спасибо!