删除Symfony2中的web/app.php

use*_*616 4 php apache .htaccess mod-rewrite symfony

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

/srv
   /www
      /site.com
         /symfonysite
         /Other Drupal hosted site files
Run Code Online (Sandbox Code Playgroud)

当我去site.com我的drupal网站打开,我希望能够访问我的symfony网站site.com/symfonysite而不是site.com/symfonysite/web/app.php

我创建了一个.htaccess文件,/symfonysite如下所示

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /billing/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L] 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但这只是摆脱app.php部分,即site.com/symfonysite/web打开我的symfony网站并site.com/symfonysite给出No route found for "GET /symfonysite/"错误.

我究竟做错了什么?

xii*_*dea 6

它是symfony的优点,它是高度可配置的.按照简单的4个步骤,您可以实现您所需的目标:

  1. 创建一个目录(比如项目)并将symfonysite的所有内容放在那里.您可以将此目录放在任何您喜欢的位置.为简单起见,我们将在symfonysite目录中创建目录.

  2. 将您的所有内容symfonysite /网络,以symfonysite

  3. 编辑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';

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

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

您修改的目录结构可能如下所示:

/srv
   /www
      /site.com
         /symfonysite
              /project
         /Other Drupal hosted site files
Run Code Online (Sandbox Code Playgroud)

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

的.htaccess

拒绝所有人

请享用!!