3

在子目录或别名中部署 symfony2 应用程序的最佳方法是什么?

假设我的应用程序将在以下条件下运行:http://domain/symfonytest

symfonytest 是我文件系统中某个目录的别名。

是否有一些我可以使用的 CLI 操作?

当我尝试手动配置它时,我发现路由有问题。

请求http://domain/symfonytest/demo被路由器视为/symfonytest/demo

有没有办法告诉路由器忽略/symfonytest整个应用程序的前缀?

4

3 回答 3

11

如果您使用的是 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-14T13:04:32.037 回答
6

如果您的项目位于不同的目录中,我将通过重写规则将所有流量设置为进入一个文件:

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()
 {
 }

希望有帮助

于 2012-09-14T14:04:46.673 回答
0

对于 symfony3,它使用 apache 配置中的别名:

Alias /myapp /home/httpd/myapp/web
于 2017-02-20T17:18:48.247 回答