Symfony2: How to deploy in subdirectory (Apache)

笑着哭i 提交于 2020-01-09 10:11:54

问题


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 ?


回答1:


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>



回答2:


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




回答3:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!