我正在尝试使用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中为我的路由添加前缀不是一个选项。
我想要的是什么?
答案 0 :(得分:1)
通过这种方式,这是不可能的,因为symfony会将每次重写视为一条完整的路径。
您只需使用prefix
中的app/config/routing.yml
即可。我知道每个路由导入都需要添加它,但这是最简单和最健壮的方式。
acme_user:
resource: "@AcmeUserBundle/Controller/"
type: annotation
prefix: /Project