我的服务器具有以下目录结构
/srv
/www
/site.com
/symfonysite
/Other Drupal hosted site files
当我转到site.com
我的drupal网站打开时,我希望能够访问site.com/symfonysite
上的symfony网站,而不是site.com/symfonysite/web/app.php
我在/symfonysite
内创建了 .htaccess 文件,如下所示
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /billing/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
但这只是摆脱app.php部分,即site.com/symfonysite/web
打开我的symfony网站,site.com/symfonysite
给出No route found for "GET /symfonysite/"
错误。
我做错了什么?
答案 0 :(得分:6)
它的高度可配置的symfony之美。 您可以按照简单的4个步骤实现您的目标:
创建一个目录(比如项目)并将 symfonysite 的所有内容放在那里。您可以将此目录放在任何您喜欢的位置。为简单起见,我们将在 symfonysite 目录中创建目录。
将 symfonysite / web 的所有内容移至 symfonysite
编辑 app.php 和 app_dev.php 修改两行,如下所示:
$ loader = require_once __DIR __。'/ .. / app / bootstrap.php.cache';
require_once __DIR __。'/ .. / app / AppKernel.php';
到
$ loader = require_once __DIR __。'/ project / app / bootstrap.php.cache';
require_once __DIR __。'/ project / app / AppKernel.php';
编辑 composer.json 文件以更新“symfony-web-dir”:“web”的值并将其更改为
“symfony-web-dir”:“.. /”,
您修改的目录结构可能如下所示:
/srv
/www
/site.com
/symfonysite
/project
/Other Drupal hosted site files
注意:出于安全原因,symfony建议仅将Web目录公开给Web可访问路径。您可以将项目目录放在任何您喜欢的位置。只需根据您的位置更新路径。 为了使这个设置更加安全,您可以将.htaccess文件放在项目目录中
的.htaccess
拒绝所有
享受!!
答案 1 :(得分:3)
您需要将/srv/www/site.com/symfonysite/web
作为项目的文档根目录。
使用.htaccess无法完成此操作,因此您需要更改apache虚拟主机配置。
这通常存在于/etc/apache2/sites-enabled/yourserver.com.conf
<VirtualHost *:80>
ServerName yourserver.com
DocumentRoot /srv/www/site.com/symfonysite/web
</VirtualHost>
我不确定机架空间网站是如何工作的,如果您无法更改这些设置,最好与他们一起打开支持服务单。我领导他们有狂热的支持:P
答案 2 :(得分:1)
恕我直言的最佳方法是使用符号链接。在site.com/web/content目录中,您需要运行ln -s symfonysite/web sitesymfony
。它将在您的web-root中创建指向sitesymfony
文件夹的符号链接/site.com/web/content/symfonysite/web
。然后您的site.com/sitesymfony将从site.com/symfonysite/web调用app.php