【问题标题】:Symfony2: How to deploy in subdirectory (Apache)Symfony2:如何在子目录中部署(Apache)
【发布时间】:2012-09-07 14:05:21
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: php symfony symfony-2.1 symfony-2.0


    【解决方案1】:

    如果您使用的是 Symfony

    只需在您的 .htaccess 中添加 RewriteBase

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

    【讨论】:

    • 谢谢,我忘了 RewriteBase :)
    • @lucian303 无需反对过时的信息 - 许多人仍在使用 2.0 或 2.1,这可能会有所帮助。问题没有正确的标签不是我的错,您只需编辑标签即可。对于 2.3 你不需要做任何事情,它似乎是开箱即用的。
    • @meze 很抱歉。你说得对。不幸的是,2.3 也不支持开箱即用(纸质版除外)。他们很努力,但惨遭失败。
    • @meze 您可以更新答案,指定哪个版本是必需的。
    • 根据github.com/symfony/symfony-standard/commits/master/web/… symfony-standard 中的 htaccess 在 2013 年 3 月/4 月引入了碱基检测。
    【解决方案2】:

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

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

    路径:域/symfonytest/demo

    /**
     * Demo page
     *
     * @return Response
     *
     * @Route("/demo", name="_demo")
     */
     public function demoAction()
     {
     }
    

    希望有帮助

    【讨论】:

      【解决方案3】:

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

      Alias /myapp /home/httpd/myapp/web
      

      【讨论】:

        猜你喜欢
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 2012-09-01
        • 2016-08-30
        • 2017-10-08
        相关资源
        最近更新 更多