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/"错误.
我究竟做错了什么?
它是symfony的优点,它是高度可配置的.按照简单的4个步骤,您可以实现您所需的目标:
创建一个目录(比如项目)并将symfonysite的所有内容放在那里.您可以将此目录放在任何您喜欢的位置.为简单起见,我们将在symfonysite目录中创建目录.
将您的所有内容symfonysite /网络,以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
Run Code Online (Sandbox Code Playgroud)
注意:出于安全原因,symfony建议仅将Web目录公开给Web可访问路径.您可以将项目目录放在任何您喜欢的位置.只需根据您的位置更新路径.为了使这种设置更加安全,您可以将.htaccess文件放在项目目录中
的.htaccess
拒绝所有人
请享用!!