[英]Remove web/app.php in Symfony2
我的服務器具有以下目錄結構
/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/"
錯誤的No route found for "GET /symfonysite/"
。
我究竟做錯了什么?
它是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
拒絕所有人
請享用!!
您需要將/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
恕我直言的最佳方法是使用符號鏈接。 在site.com/web/content目錄中,您需要運行ln -s symfonysite/web sitesymfony
。 它將在您的web-root中創建指向/site.com/web/content/symfonysite/web
文件夾的符號鏈接sitesymfony
。 然后您的site.com/sitesymfony將從site.com/symfonysite/web調用app.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.