2017-07-27 36 views
1

我试图设置Symfony路由。我正在使用Symfony 2.7。我有两个在不同子域下工作的软件包。域名可以是通配符,tld可以是多个。在子域和tld的Symfony路由配置中使用通配符

这是我目前的配置文件:

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" 

我NOG upgarde的配置这种设置。而且tld的工作是正确的。只有这样才有可能为域名“mydomainname”使用通配符?这很容易,因为dev和producten服务器使用不同的域名。

+0

您能否提供一个或两个您尝试过的配置无效的示例? – likeuntomurphy

回答

0

这里是什么,我在3.1的应用程序,在这里我使用了一个占位符,通过环境的改变顶级域用一个例子 -

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

我不明白为什么以下不会根据the docs为您的API路线2.7工作,因为这都应该是兼容的:

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

我记得在开发过程中的路由配置似乎是积极的缓存,因此一如既往,一定要清除缓存在做任何路由改变之后。

+0

谢谢你的工作,只有它总是将请求重定向到默认域和tld。我希望它保留请求的域和tld,但只支持我在需求中指定的多个域和tld? – Tom