将Symfony2应用程序分区为子域

时间:2015-05-24 17:57:41

标签: php symfony

我正在构建一个symfony2应用程序,我想将功能分成两个"站点",例如:

  • www.mydomain.com(基本网站)
  • foobar.mydomain.com(网站的受限制部分,提供特定功能)

[澄清]

我已经阅读了下面其他人指出的文档,但是Symfony正在抛出异常,并出现以下错误消息:

  

参数"域"必须定义(500内部服务器错误)

这是我到目前为止所做的:

  1. 将foobar.localhost添加到我的/ etc / hosts文件
  2. 由routing.yml修改(见下文)
  3. 重启Apache
  4. 我的routing.yml文件看起来像这样

    foobar_homepage:
        path:     /
        host:     "foobar.{domain}"
        defaults:
            _controller: AcmeDemoBundle:Main:foobarHomepage
            domain: "%domain%"
        requirements:
            domain: "%domain%"
    
    homepage:
        path:  /
        defaults: { _controller: AcmeDemoBundle:Main:homepage }
    

    我不想对域名进行硬编码 - 因此我可以为多个网站使用相同的代码库和配置。

    我已在请求对象中拥有域名。问题是它不清楚如何将该参数传递给路线。

    那么我如何以 DRY 方式传递域名,以满足路线要求?

3 个答案:

答案 0 :(得分:1)

如果您希望在路线中完全动态主机解析而没有任何硬编码值,则应省略路由的默认值和要求。看起来应该是这样的:

foobar_homepage:
    path:     /
    host:     "foobar.{domain}"
    defaults:
        _controller: AcmeDemoBundle:Main:foobarHomepage

答案 1 :(得分:0)

您的问题是路线匹配吗?如果是,请查看symfony文档:http://symfony.com/doc/current/components/routing/hostname_pattern.html

答案 2 :(得分:0)

您甚至可以制作动态子域名。这是一个很好的视频教程: http://knpuniversity.com/screencast/question-answer-day/symfony2-dynamic-subdomains