2017-07-27 71 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