有多个域的多条路线[英] Multiple routes with multiple domains

本文是小编为大家收集整理的关于有多个域的多条路线的处理方法,想解了有多个域的多条路线的问题怎么解决?有多个域的多条路线问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

假设我有一个包含多个(子)域的网站:

  • acme.com(美国)
  • acme.nl(荷兰)
  • be.acme.eu(比利时)
  • de.acme.eu(德国)
  • fr.acme.eu(法国)
  • 等等……

我认为这个配置应该很简单,所以我做了这个routing.yml:

usa:
    host: "acme.com"
    resource: "@WebsiteBundle/Controller/"
    type:     annotation
    defaults:
        country: "en"

netherlands:
    host: "acme.nl"
    resource: "@WebsiteBundle/Controller/"
    type:     annotation
    defaults:
        country: "nl"

europe:
    host: "{country}.acme.eu"
    resource: "@WebsiteBundle/Controller/"
    type:     annotation

但如果我运行 router:debug,则只有最后一条路线(在本例中为 {country}.acme.eu)显示.如果我更改订单,则会显示最后一个选项.

如何在我的所有国家/地区使用不同的(子)域?

推荐答案

这是因为所有的路由都指向一个资源.以后的每个路由都会覆盖之前定义的路由.

但您可以使用其他解决方案:

main_route:
    host: "{country}.acme.{domain}"
    resource: "@WebsiteBundle/Controller/"
    type:     annotation
    defaults:
        country: "en"

然后在控制器之前检查一些侦听器以获取有效的 url 和进程参数.

本文地址:https://www.itbaoku.cn/post/1793745.html