0

我正在尝试使用 apache2 的 mod_rewrite 为我的 symfony2 2.1 项目中的所有路由添加前缀。

假设我的 symfony2 项目的根目录位于 /var/www/ProjectFrontEnd。

我想要实现的是让用户使用http://www.mydomain.com/Project访问项目

我已经在我的虚拟主机中设置了这个:

    DocumentRoot var/www/ProjectFrontEnd

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/Project/(.*)$ /var/www/ProjectFrontEnd/web/app.php/$1 [QSA,L]

当我查看重写日志时,我可以看到路由已按照我的预期重写rewrite '/Project/' -> '/var/www/ProjectFrontEnd/web/app.php/'request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /Project/" (uncaught exception)

我不明白为什么 symfony2 仍然使用未重写的 url ......

我想指定在 symfony 的 routing.yml 中为我的路由添加前缀不是一个选项。

我想要实现的目标是什么?

4

1 回答 1

1

这样是不可能的,因为 symfony 将每一次重写都当作一个完整的路由来处理。

你可以简单地prefix在你的app/config/routing.yml. 我知道每个路由导入都需要添加它,但这是最简单和健壮的方法。

acme_user:
    resource: "@AcmeUserBundle/Controller/"
    type:     annotation
    prefix:   /Project
于 2013-07-01T10:25:41.950 回答