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

Условное обслуживание файлов из каталога вне корня документа с помощью Apache2

Я унаследовал веб-приложение, написанное на 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