2016-09-21 68 views
1

我有两个不同的Symfony2.8应用程序。在开发过程中,它们可以通过两个分离的域(虚拟主机)访问:www.app1.localwww.app2.local。一切正常。但是最终这两个应用程序应该部署到一个域的服务器上。因此我为每个应用程序创建两个文件夹。从Symfony2.8应用程序的URL中隐藏“web”

文档根目录是/httpdocs,因此可以通过www.domain.com/test.php访问文件/httpdocs/test.php。两个文件夹是/httpdocs/app1/httpdocs/app2。每个包含Symfony2.8与自己的捆绑软件包的不同安装等。

问题是什么? URL中的web。应用程序的URL看起来像www.domain.com/app1/web/index.php而不是www.domain.com/app2/web/index.php。我试图从URL中隐藏这个web,但我不知道如何做到这一点。

+0

“网站目录”在这里解释如何做到这一点上不同的Web服务器http://symfony.com/doc/current/setup/web_server_configuration.html – yceruto

+0

这里如何在需要时覆盖Web目录http://symfony.com/doc/current/configuration/override_dir_structure.html#override-the-web-directory – yceruto

回答

1

一般来说,它应该通过网络服务器本身进行配置。但是,如果您无法访问Web服务器(Apache,nginx)的配置,则可以执行以下操作。

把你/httpdocs/app1app1/web副本,并在app1/web

应用/httpdocs/app2复制自己放在其他地方。 所以看起来,例如,像这样:

app1/ 
    app/ 
    bin/ 
    ... # <--no web among these folders 
    composer.json 
    ... 
app2/ 
    app/ 
    bin/ 
    ... # <--no web among these folders 
    composer.json 
    ... 
httpdocs/ 
    app1/ 
    bundles/ 
    .... 
    index.php 
    app2/ 
    bundles/ 
    .... 
    index.php 

,然后在index.php修复路径,以应用

$loader = require __DIR__.'/../../app1/app/autoload.php'; 
    include_once __DIR__.'/../../app1/var/bootstrap.php.cache'; 

(和同为APP 2,但app2)。

而且,解决这两个composer.json

"symfony-web-dir": "../httpdocs/app1",