繁体   English   中英

在子域和 tld 的 Symfony 路由配置中使用通配符

[英]Use wildcards in Symfony routing configuration for subdomain and tld

我尝试设置 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”才能有通配符吗? 这很容易,因为 dev 和 producten 服务器使用不同的域名。

这是我在 3.1 应用程序中使用的示例,其中我使用占位符作为顶级域的占位符,该域因环境而异——

app:
    resource: "@AppBundle/Controller/"
    type: annotation
    host: www.example.{tld}
    defaults:
        tld: "%tld%"
    requirements:
        tld: "%tld%"

我不明白为什么以下内容不适用于您的 API 路由,因为根据文档,这都应该与 2.7 兼容:

company_api:
    resource: "@ApiBundle/Controller/"
    type: annotation
    host: api.{domain}.{tld}
    defaults:
        domain: yourdefaultdomain
        tld: nl
    requirements:
        tld: "nl|eu"

我记得在开发过程中,路由配置似乎被积极缓存,所以一如既往,在进行任何路由更改后一定要清除缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM