What is the best way to deploy symfony2 application in a subdirectory or an alias ?
Lets say that my application will run under: http://domain/symfonytest
symfonytest is an alias to some directory in my filesystem.
Is there some CLI operation that I can use ?
When I try to configure it manually I see a problem with routing.
Requets to http://domain/symfonytest/demo
are seen by router as /symfonytest/demo
Is there a way to tell router to ignore /symfonytest
prefix for the whole application ?
If you are using Symfony < 2.3 you could follow this approach:
Just add RewriteBase
in your .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /symfonytest
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
If your project sits in a different directory what i would do is set all traffic to go into one file via rewrite rule:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
And then I would set route prefix to my controller by annotation:
# Index (main page)
_nameRouteIndex:
resource: "@MyBundle/Controller/IndexController.php"
type: annotation
prefix: /symfonytest
After that you put in your controller something like this (path would be domain/symfonytest):
/**
* Home page
*
* @return Response
*
* @Route("/", name="_index")
*/
public function indexAction()
{
}
Path: domain/symfonytest/demo
/**
* Demo page
*
* @return Response
*
* @Route("/demo", name="_demo")
*/
public function demoAction()
{
}
Hoep that helps
For symfony3 it works with an alias in the apache config:
Alias /myapp /home/httpd/myapp/web
来源:https://stackoverflow.com/questions/12423983/symfony2-how-to-deploy-in-subdirectory-apache