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

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

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

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

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

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

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

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

3 ответа

Решение

Если вы используете 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

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

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

Путь: домен / symfonytest / demo

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

Hoep это помогает

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

Alias /myapp /home/httpd/myapp/web
Другие вопросы по тегам