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

时间:2015-03-21 14:02:23

标签: symfony routes appdomain 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: /

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

我添加了这个,但没有用

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

1 个答案:

答案 0 :(得分:1)

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

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

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

如果 user_site site 未收到请求,则 custom_site 会抓取该请求;并且作为 user_site 网站建议, custom_site 将匹配用户自己的域(或者至少是与您的%域%不同的域)