如何嵌套Silex应用程序?
我正在为我的客户设置一个项目演示,以便他们可以访问mydomain.net/project/demo
并查看他们的网站。
我的目录结构:
www
mydomain.net
projects
client_project
app
web
index.php <-client project front controller
another_client_project
app
web
index.php <-another client project front controller
src
vendor
web <-apache docroot
index.php <-front controller for my site
所以我的想法是我应该能够在我的前端控制器上创建一个路由,它只是将用户代理引用到一个嵌套的客户端项目特定的前端控制器。网址可能如下所示:http://mydomain.net/projects/client_project/
Silex有一个方便的工具来制作他们所谓的子请求,如下所示:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
$app->get('/', function () use ($app) {
// redirect to /hello
$subRequest = Request::create('/hello', 'GET');
return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});
所以......这是我搁浅的地方。我可以设计一个引用给定嵌套前端控制器的请求吗?这需要一些mod_rewrite操作吗?
答案 0 :(得分:0)
由于您可能使用mod_rewrite(或其在nginx,lighttpd等中的模拟)将所有内容提供给index.php进行路由,您也可以使用它来构建这些嵌套的应用程序。只需为每个客户端项目构建一个重写模式,并将其发送到特定于客户端的index.php