Symfony2主机名路由

时间:2013-11-25 22:41:24

标签: php symfony routing subdomain

我正在使用依赖于子域的主机名路由。

我想要做的是有两个单独的路线。当我在www.example.com上运行时,它使用一个路由文件,如果有任何其他子域,例如subdomain1.example.com或subdomain2.examples(等等),那么它将运行另一个路由文件。

我的路由如下(yml):

route_www:
    resource: "@AcmeBundle/Resources/config/routing/www/routing.yml"
    host: www.%base_host%

route_sites:
    resource: "@AcmeBundle/Resources/config/routing/sites/routing.yml"

现在这很有用。我正在使用FOSUserBundle,我在route_sites中拥有所有这些路由,但是例如www.example.com/register仍可查看,因为www仍然对route_sites有效。无论如何可能使用正则表达式,以防止子域名www使用route_sites路由。

希望有人可以提供帮助

2 个答案:

答案 0 :(得分:1)

请参阅此http://symfony.com/doc/current/components/routing/hostname_pattern.html

使用占位符,然后您可以在需求中使用正则表达式

答案 1 :(得分:0)

您可以尝试使用webserver虚拟主机配置并在其中设置ENV变量。基于此env变量,您可以加载不同的symfony 2环境甚至不同的应用程序(但您仍然可以轻松地重用/共享实体映射文件,带有符号链接的代码库)。如果您不想加载所有捆绑包或共享配置/代码的某些部分,这可能会有所帮助。