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

54
3

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


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


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


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


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


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


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

спросил(а) 2012-09-14T14:52:00+04:00 7 лет, 2 месяца назад
3
Решение
103

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


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

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

ответил(а) 2012-09-14T16:04:00+04:00 7 лет, 2 месяца назад
Еще 2 ответа
85

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


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, который помогает

ответил(а) 2012-09-14T17:04:00+04:00 7 лет, 2 месяца назад
32

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


Alias /myapp /home/httpd/myapp/web

ответил(а) 2017-02-20T20:18:00+03:00 2 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема