我有这条路线:
api:
resource: "@WebApiBundle/Resources/config/routing.yml"
prefix: /
host: api.mydomain.com
我想让用户将他们的域名CNAME添加到api.mydomain.com,当他们使用自己的域名时,例如api.anotherdomain.com
或anotherdomainwithoutsubdomain.com
我想显示api路由。
我试过了:
api:
resource: "@WebApiBundle/Resources/config/routing.yml"
prefix: /
host: "{domain}" # and also "{subdomain}.{domain}"
但它没有奏效。它仅用于主路由,而不是WebApiBundle
。
我如何在Symfony上执行此操作?顺便说一下,我使用Symfony3。
答案 0 :(得分:0)
可以这样做:
您必须在routing.yml中按顺序指定主机。
所以,这就是它的工作原理。所有指定的主机都会执行其路由,其他主机将遵循最后一条规则。见例:
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
web_main:
resource: "@MyWebMainBundle/Resources/config/routing.yml"
prefix: /
host: www.my.com
web_api:
resource: "@MyWebApiBundle/Resources/config/routing.yml"
prefix: /
host: api.my.com
web_public_api:
resource: "@MyWebPublicApiBundle/Resources/config/routing.yml"
prefix: /
在这种情况下,web_public_api
将处理指向我的服务器的所有其他域。如果是用户/客户域。
稍后,在控制器或中间件中,检查数据库中是否存在域。如果不存在,请返回404
或403
或甚至500
。