我希望这个问题不会重复出现,但是我只在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
生产服务器将是专用系统,因此我可以修改任何想要的内容。