使用apache2 mod_rewrite为路由添加前缀

时间:2013-07-01 10:00:35

标签: mod-rewrite symfony

我正在尝试使用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/'),但是我从symfony收到404错误,日志显示了{{1}行的内容}

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

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

我想要的是什么?

1 个答案:

答案 0 :(得分:1)

通过这种方式,这是不可能的,因为symfony会将每次重写视为一条完整的路径。

您只需使用prefix中的app/config/routing.yml即可。我知道每个路由导入都需要添加它,但这是最简单和最健壮的方式。

acme_user:
    resource: "@AcmeUserBundle/Controller/"
    type:     annotation
    prefix:   /Project