我的服务器具有以下目录结构

/srv
   /www
      /site.com
         /symfonysite
         /Other Drupal hosted site files

当我访问 site.com 时,我的 Drupal 站点打开了,我希望能够在 site.com/symfonysite 而不是 site.com/symfonysite/web/app.php 上访问我的 symfony 站点

我在 /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/" 错误。

我究竟做错了什么?

最佳答案

symfony 的美妙之处在于它是高度可配置的。
您可以通过以下简单的 4 个步骤实现您想要的:

  • 创建一个目录(比如项目)并将 symfonysite 的所有内容放在那里。你可以把这个目录放在任何你喜欢的地方。为简单起见,我们将在您的 symfonysite 目录中创建目录。
  • 将您的 symfonysite/web 的所有内容移动到 symfonysite
  • 编辑 app.php 和或 app_dev.php 修改两行如下:





  • 编辑 composer.json 文件以更新 "symfony-web-dir": "web" 的值并将其更改为


  • 您修改后的目录结构可能如下所示:
    /srv
       /www
          /site.com
             /symfonysite
                  /project
             /Other Drupal hosted site files
    

    注意:出于安全原因,symfony 建议仅将 Web 目录公开到 Web 可访问路径。您可以将项目目录放在任何您喜欢的位置。只需要根据您的位置更新路径。
    为了给这个设置更多的安全性,你可以在项目目录中放置一个 .htaccess 文件

    .htaccess



    享受!!

    10-08 06:35