【发布时间】:2021-11-19 14:57:50
【问题描述】:
在我的 Symfony 应用程序 (Symfony 5.3) 中,我必须支持以下场景,其中包含属于多个应用程序上下文的多个主机/域(即自己的防火墙和自己的控制器,有时也是共享控制器):
main-domain.tld -> main_context
main-domain2.tld -> main_context
service.main-domain.tld -> service_context
service.main-domain2.tld -> service_context
service.maybe-several-other-brand-domains.tld -> service_context
admin.main-domain.tld -> admin_context
admin.main-domain2.tld -> admin_context
admin.maybe-several-other-brand-domains.tld -> admin_context
它是如何开始的
在我们拥有多个品牌/域之前,我们有两个主要的应用上下文,它们由它们自己的主机名解决。所以我们做了这样的事情来将控制器分配给上下文:
#[Route(
path: '/',
requirements: ['domain' => '%app.public_hostname_context1%'],
defaults: ['domain' => '%app.public_hostname_context1%'],
host: '{domain}',
)]
# where app.public_hostname_context1 is a hostname configured in the .env.local
进展如何
这很有效,直到我们决定为其中一种情境设置多个有效主机,事实上这与品牌推广的需要一样多。所以我做了一些研究并遇到了问题,我无法访问defaults 配置中的当前主机名,因此必须在我生成的每个 url 上明确设置域。
问题是
你将如何解决这个要求?
【问题讨论】: