我有一个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