1

我们的网站将按以下方式运行:

  • 有一个中央站点 www.example.org,每个人都可以在其中注册、更改信息、管理他们的“名片”。
  • 此外,每个人都会有 companyname.example.org。在这里,用户可以根据他们在主站点中更改的信息发布一个简单的站点。

该站点是基于 CakePHP 构建的。我想知道这有什么好的设置。在进行了一些谷歌搜索之后,为控制器和模型创建一个单独的目录以供重用似乎很常见,但在这种情况下,我想真正共享所有代码,除了路由和视图。

是否可以根据域名更改路由。这对于 CakePHP 是否被认为是“合适的”。我宁愿找到最佳实践,而不是“完成”工作的解决方案。

谢谢!

4

3 回答 3

1

使用本教程解决

于 2009-11-25T09:52:05.727 回答
1

在我的脑海中,CakePHP 中的路由引擎没有域的概念,所以理论上你可以做的是使用 Apache 重写将 /company1/post/1 等路由映射到 company1.example.com/post/1

在路由中添加前缀是可能的,因为我以前使用它来生成多语言站点,例如 /en/blog、/es/blog 等,因此这只是在路由中添加公司名称前缀的情况。

于 2009-11-27T16:30:46.033 回答
1

您正在寻找的是themes.

CakePHP 1.3 有一个简洁的实现,但 1.2 几乎一样好。

在您的 AppController 中,您将需要添加一些内容以根据主机加载不同的主题:

$mapThemes = array('company.example.com' => 'theme-1', 'store.example.com' => 'theme-shopping');
$this->theme = $mapThemes[env('SERVER_NAME')];

当然,可能性是无穷无尽的。您可以通过让每个用户定义多个主题等来从数据库加载$mapThemes。但这是一般的想法,我相信这是 Cake 的做事方式。

于 2009-11-28T06:49:15.500 回答