Я унаследовал веб-приложение, написанное на PHP. Код не самый лучший, и я хочу начать использовать фреймворк Symfony. Это будет постепенный переход через несколько выпусков, поэтому мне нужно, чтобы унаследованные страницы, веб-скрипты, файлы css и изображения работали так, как сейчас.
Я планирую поместить установку Symfony в подкаталог корня проекта и установить корень документа конфигурации Apache2 в каталог Symfony. Затем мне нужно настроить Apache2 для обслуживания старых сценариев из корня старого документа. Вот структура каталогов до и после.
Перед:
lib
htdocs
htdocs\index.php
htdocs\img\logo.png
htdocs\css\styles.css
sql-updates
После:
lib
htdocs
htdocs\index.php
htdocs\img\logo.png
htdocs\css\styles.css
sql-updates
symfony
symfony\app.php
htdocs - это текущий корень документа, а symfony - новый корень документа.
Symfony в значительной степени работает через скрипт app.php, поэтому большинство запросов на код Symfony проходят через него.
Если какие-либо запросы на страницы или файлы не найдены в каталоге symfony, я хочу, чтобы Apache смотрел в каталоге htdocs, как это было раньше.
Есть ли способ сделать это, не перемещая URI устаревших страниц в подкаталог?
Например. Если предыдущий URI был www.app.com/ascript.php, а он разрешился как htdocs / ascript.php, я не хочу менять URI на что-то вроде www.app.com/legacy/ascript.php.
Это возможно?
Это должно быть довольно просто, в руководстве есть даже пример:
http://httpd.apache.org/docs/2.4/rewrite/remapping.html#multipledirs