我正在为我工作的组织开发一个网站。我们的主站点是www.mainsite.com
,但是我们有几个子站点“继承”了主站点(每个站点访问相同的数据和控制器,只是看起来不同)。例如sub1.mainsite.com
,sub2.mainsite.com
等等。
我已经开始为主网站编写代码,并使用 Symfony 2.2 的新子域/主机路由功能,我希望能够根据子域以编程方式更改网站的外观。
如果我添加host: "{site}.mainsite.com"
到我的一条路线,我可以成功进入{site}
我的控制器。但是,如果没有子域,则路由不匹配。这可以通过添加一条没有host
选项的新路线来解决,但这意味着我将路线翻倍,我真的不想这样做。
本质上,我真正需要的是能够基于子域(或无子域)更改网站的外观和它使用的菜单。
有谁知道我该怎么做?
示例路线:
news:
pattern: /news/{page}
host: "{site}.mainsite.com"
defaults: { _controller: MainSiteNewsBundle:News:index, page: 1, site:main }
requirements:
page: \d+
site: sub1|sub2
另外,顺便说一句,如果我能让这个工作,我可以在整个站点范围内应用这个规则而不必修改我的每条路线吗?