Symfony 2,如何处理多个域的路由?

Symfony 2, how do I handle routing for multiple domains?

我有一个网站,任何人都可以使用我们的子域创建自己的网站,他们也可以使用自己的自定义域。

user_site:
    resource: "routing_user_site.yml"
    host:     "{subdomain}.{domain}"
    requirements:
        domain: %domain%
    defaults:
        domain: %domain%

# Our Site
site:
    host: %domain%
    resource: "routing_our_site.yml"
    prefix: /

以上路由工作正常,但我不确定如何重定向其他域,这不是我们路由 routing_user_site.yml 文件

的主域

我已经添加了这个,但是没有用

custom_site:
    host: "{domain}"
    resource: "routing_user_site.yml"
    prefix: /
    requirements:
      domain: !(%domain%)

在 Symfony2 中,路由的顺序非常重要。如果一个路由不匹配,那么框架将测试下一个。

这意味着,在您的情况下,您不必执行 !(%domain%),而只是设置规则而不需要捕获所有其他路由。

user_site:
    [...]
site:
    [...]
custom_site:
    resource: "routing_user_site.yml"
    prefix:   /

如果请求未被 user_sitesite 捕获,它将被 捕获custom_site;正如 user_sitesite 所建议的那样,custom_site 将匹配用户的自己的域(或者至少是与您的 %domain% 不同的域)。