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