Каков наилучший способ развертывания приложения 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