Symfony2: как развернуть в подкаталоге (Apache)

Каков наилучший способ развертывания приложения symfony2 в подкаталоге или псевдониме?

Допустим, что мое приложение будет работать под: http://domain/symfonytest

symfonytest – это псевдоним некоторого каталога в моей файловой системе.

Есть ли какая-нибудь операция CLI, которую я могу использовать?

Когда я пытаюсь настроить его вручную, я вижу проблему с маршрутизацией.

Запросы к http://domain/symfonytest/demo рассматриваются маршрутизатором как /symfonytest/demo

Есть ли способ сказать маршрутизатору игнорировать префикс /symfonytest для всего приложения?

Если вы используете Symfony <2.3, вы можете следовать этому подходу:

Просто добавьте RewriteBase в свой .htaccess:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /symfonytest RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> 

Если ваш проект находится в другом каталоге, то я бы сделал, чтобы весь трафик переходил в один файл с помощью правила перезаписи:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] 

И тогда я бы установил префикс маршрута для своего контроллера по аннотации:

 # Index (main page) _nameRouteIndex: resource: "@MyBundle/Controller/IndexController.php" type: annotation prefix: /symfonytest 

После этого вы добавите в свой контроллер что-то вроде этого (путь будет domain / symfonytest):

 /** * Home page * * @return Response * * @Route("/", name="_index") */ public function indexAction() { } 

Путь: domain / symfonytest / demo

 /** * Demo page * * @return Response * * @Route("/demo", name="_demo") */ public function demoAction() { } 

Hoep, который помогает

Для symfony3 он работает с псевдонимом в конфигурации apache:

 Alias /myapp /home/httpd/myapp/web