3

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

现在,我正在寻找一个 RewriteRule 或 Symfony 中的其他东西,它让http://api.mydomain.com等同于 Symfony 的http://mydomain.com/api,并且对于 public 也是如此。

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

4

1 回答 1

2

从 symfony 2.2 开始可用,这可以使用host-matching routes来解决。

应用程序/配置/路由.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其作为别名添加到您的虚拟主机配置中。

虚拟主机配置(Apache)

ServerName:  mydomain.com
ServerAlias: api.mydomain.com
于 2013-11-07T13:06:15.733 回答