【问题标题】:Symfony2 Hostname RoutingSymfony2 主机名路由
【发布时间】:2013-11-25 22:41:24
【问题描述】:

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

我想要做的是有两个独立的路由。当我运行 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 路由。

希望有人能帮忙

【问题讨论】:

    标签: php symfony routing subdomain


    【解决方案1】:

    看到这个http://symfony.com/doc/current/components/routing/hostname_pattern.html

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

    【讨论】:

    • 谢谢你,绝对是要走的路。只是不确定正则表达式是否擅长匹配“不”包含字符串的字符串,但似乎否定的环视方法有效 /^(?!www)/ 我稍后会试一试。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多