Как настроить Apache после изменения архитектуры проекта?
Нужно было внедрить несложный дополнительный функционал на старом самописном сайте. Это потребовало установки нескольких библиотек через composer. После такой модернизации архитектура проекта выглядит так:
/site.ru/
index.php
/config/
/class/
/templates/
/images/
/css/
/js/
/controller/
catalog.php
news.php
router.php
…
vendor/
composer.lock
composer.json
Document root веб-сервера — /site.ru/www/, соответственно, и папка vendor, и конфигурационные файлы composer попадают в публичный доступ, что небезопасно.
Я попробовал создать папку public, перенести в нее файл index.php, а также папки с шаблонами, картинками, стилями и скриптами, а затем сменить Document root в настройках Apache на /site.ru/www/public/. В скриптах обновил пути. Структура стала такой:
/site.ru/
/public/
index.php
/templates/
/images/
/css/
/js/
/config/
/class/
/controller/
catalog.php
news.php
router.php
…
/vendor/
composer.lock
composer.json
В итоге рабочей осталась только главная страница сайта, при попытке открыть какую-нибудь из внутренних страниц получаю 500 Internal Server Error. Вероятно, дело в настройках Apache, но я пока не понимаю в каких, т.к. плохо с ним знаком.
Конечно, вместо изменения структуры можно пойти более простым путем — запретить доступ к папке /vendor/ и файлам composer.lock, composer.json через .htaccess (как это описано здесь), но хочется найти решение с более безопасной структурой.
Буду признателен за любую помощь.