如何在 Symfony 上匹配 CNAME
How to match CNAME's on Symfony
我有这条路线:
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。
可以这样做:
You have to specifiy hosts in order in 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
将处理指向我的服务器的所有其他域。如果user/customer域.
稍后,在控制器或中间件中,检查数据库中是否存在域。如果不存在,return 404
或 403
甚至 500
.
我有这条路线:
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。
可以这样做:
You have to specifiy hosts in order in 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
将处理指向我的服务器的所有其他域。如果user/customer域.
稍后,在控制器或中间件中,检查数据库中是否存在域。如果不存在,return 404
或 403
甚至 500
.