在DocumentRoot的子文件夹中安装Symfony 4

时间:2019-04-29 17:11:14

标签: apache url-rewriting url-routing symfony4

我希望这个问题不会重复出现,但是我只在Symfony的旧版本中找到有关此问题的文章或问题。我是Symfony 4的新手,我想用它创建一个新应用程序并将其安装为现有网站的一部分(下面的domain)。 Sf 4应用程序进入下面的层次结构中所示的admin/子目录。 domain使用TYPO3 CMS,但是我不确定这个问题是否重要。

首先,这是目录结构:

/home/webuser/domain/
    public/ (this is the document root for "domain.localhost")
        admin/ (the Symfony app goes here)
            public/
            …
        …
        typo3/
        .htaccess
        index.php
        …
        composer.json

我目前正在本地计算机上的网站上工作,我想从domain.localhost/admin访问Symfony应用程序的根目录。我正在使用Apache虚拟主机,并且domain/public文件夹是domain的文档根目录:

<VirtualHost *:80>
    ServerName domain.localhost
    DocumentRoot "/home/webuser/www/domain/public"
</VirtualHost>

我尝试将以下重写规则添加到我的VirtualHost中:

<VirtualHost *:80>
    ServerName domain.localhost
    DocumentRoot "/home/webuser/www/domain/public"
    RewriteEngine On
    RewriteRule "^/admin/(.*)$" "/admin/public/$1"
    LogLevel trace1
</VirtualHost>

但这似乎仅在我访问http://domain.localhost/admin/时有效:然后,我看到“欢迎使用Symfony 4.2.7”页面。尝试访问子页面后,立即收到404错误。如文档here所述,我试图在lucky/number上创建我的第一页,然后查看Apache错误日志,发现诸如:

[Mon Apr 29 18:52:09.472043 2019] [rewrite:trace1] [pid 22250:tid 140404453660416] mod_rewrite.c(483): [client ::1:43084] ::1 - - [domain.localhost/sid#55a33c704bf8][rid#7fb260002bd0/initial] [perdir /home/webuser/www/domain/public/] pass through /home/webuser/www/domain/public/admin/public/lucky

[Mon Apr 29 18:52:09.472087 2019] [core:info] [pid 22250:tid 140404453660416] [client ::1:43084] AH00128: File does not exist: /home/webuser/www/domain/public/admin/public/lucky/number

现在,TYPO3有一个.htaccess文件,其中包含URL重写,但是我不认为它们会干扰。下面,我只是在规则中添加了admin/文件夹,并以“停止重写处理”开头的注释之后,这样当文件为找不到:

domain

生产服务器将是专用系统,因此我可以修改任何想要的内容。

1 个答案:

答案 0 :(得分:0)

事实证明,我只需要安装Apache包,就像在this answer

中一样