我尝试设置Symfony路由。我正在使用Symfony 2.7。我有两个在不同子域下工作的包。域名可以是通配符,tld可以是多个。
这是我当前的配置文件:
company_api:
resource: "@ApiBundle/Controller/"
type: annotation
prefix: /
company_core:
resource: "@CoreBundle/Controller/"
type: annotation
prefix: /
我希望第一个包只能在子域“api”下工作,域可以是通配符,对于TLD我想指定一些像(nl | eu)。
编辑
company_core:
resource: "@ApiBundle/Controller/"
type: annotation
prefix: /
host: www.mydomainname.{tld}
defaults:
tld: nl
requirements:
tld: "nl|eu"
我已经将配置升级到此设置。并且tld工作正确。只有域名“mydomainname”的通配符才可能?这很简单,因为开发和生产服务器使用不同的域名。
答案 0 :(得分:1)
以下是我在3.1应用程序中使用的示例,其中我使用顶级域的占位符因环境而异 -
app:
resource: "@AppBundle/Controller/"
type: annotation
host: www.example.{tld}
defaults:
tld: "%tld%"
requirements:
tld: "%tld%"
我不明白为什么以下内容对您的API路由不起作用,因为根据the docs,这应该与2.7兼容:
company_api:
resource: "@ApiBundle/Controller/"
type: annotation
host: api.{domain}.{tld}
defaults:
domain: yourdefaultdomain
tld: nl
requirements:
tld: "nl|eu"
我确实记得在开发期间,路由配置似乎是积极缓存的,所以一如既往地确保在进行任何路由更改后清除缓存。