路由前缀如下 虚拟主机


Routing prefix as follows the Virtual Host

我有一个Symfony应用程序,它有2个捆绑包:一个公共包(可通过URL/public/blahblah/test/...调用)和一个API捆绑包(可通过URL/api/getIt调用)。我创建了 2 个子域,其中包含 2 个虚拟主机,一个用于公共,一个用于 api。

现在,我正在寻找一个重写规则或Symfony中的其他东西,让 http://api.mydomain.com 等同于Symfony的 http://mydomain.com/api,对于公共也是如此。

在休闲网络中,可以通过定义虚拟主机的DocumentRoot来实现,但我不知道如何与Symfony路由系统兼容。

从symfony 2.2开始可用,这可以使用主机匹配路由来解决。

app/config/routing.yml

api_subdomain:
    resource: "@YourApiBundle/Resource/config/routing.yml" # your API's routes
    prefix:   "/"
    host:     "api.mydomain.com"
api:
    resource: "@YourApiBundle/Resource/config/routing.yml"
    prefix:   "/api"
    defaults: "mydomain.com"

现在,您只需要一个虚拟主机,只需将api.mydomain.com作为别名添加到虚拟主机配置中即可。

vhost config (Apache)

ServerName:  mydomain.com
ServerAlias: api.mydomain.com