В настоящее время я работаю над приложением Symfony2, которое на данный момент должно размещаться внутри подкаталога. Обычно можно было бы изменить DocumentRoot в виртуальном хосте Apache, но в настоящее время это невозможно. Также невозможно разместить что-либо в корневом каталоге (например, выше public_html/
).
DocumentRoot установлен в /public_html/
. Структура с приложением Symfony2 в подкаталоге выглядит так:
- public_html/
-- dev/
---- app/
---- bin/
---- src/
---- vendor/
---- web/
Без какой-либо специальной настройки приложение можно открыть по адресу http://example.com/dev/web/app.php. Однако я хочу изменить это на http://example.com/dev без необходимости перемещать файлы.
Я придумал следующее .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_URI} !dev/web/
RewriteRule (.*) /dev/web/app.php/$1 [L]
Это вроде работает, но Symfony2 сообщает о следующей ошибке: No route found for "GET /dev/"
.
Если я изменю RewriteRule на RewriteRule (.*) /dev/web/$1 [L]
, я смогу получить доступ к приложению с помощью http://example.com/dev/app.php/dashboard (примером, конечно же, является панель инструментов), что приводит к No route found for "GET hboard"
, обратите внимание на hboard. Вызов http://example.com/dev/app.php/ действительно отображает страницу в / отлично, и ссылки на все активы также работают нормально.
Любая помощь приветствуется. Со временем это приложение также должно перейти с dev/
на /
. Так что решение для этого также приветствуется.