首先,让我解释一下我的情况: 我有两个域,两个网站,相同的布局,但不同的内容和不同的目的。 我想做什么:
在这两个系统之间共享:
有什么不同:
我考虑的选项:
选项1
这样的事情:
if ($_SERVER['HTTP_HOST'] == 'www.example1.com') {
Configure::write('defaultplugin', 'example1');
} else {
Configure::write('defaultplugin', null);
}
这可能吗
选项2
虚拟地址,但这也很难实现,因为我的路由配置如下:
Router::connect("/{$prefix}/:language/:plugin", $indexParams, $shortParams);
也许我应该改变这条路线:
Router::connect("/{$prefix}/:plugin/:language", $indexParams, $shortParams);
但如果我之前的建议可行,我想这样做,因为我不知道最后一个解决方案是否能在某些层面上正常运行。
选项3
使用此处描述的方法:http://rickguyer.com/cakephp-one-core-many-apps/
所以我会制作3个app文件夹:example1,example2,common。但我不知道是否可以让app文件夹包含example1和common OR example2以及common的内容。
选项4
来自Stackoverflow的人的一个很棒的想法。
提前致谢!
答案 0 :(得分:0)
我们根据域切换routes.php内容。 通过这种方式,我们可以灵活地进行配置/黑客/切换。
您只需切换/替换相关路线,其余的应该没问题。
e.g:
if ($isDomainX) {
Router::connect('/', array('plugin' => 'shop', 'controller' => 'shop', 'action' => 'index', 'slug' => $slug), array('pass' => array('slug')));
...
} else {
Router::connect('/', array('controller' => 'custom_pages', 'action' => 'homepage'));
...
}
您还可以包含/切换整个文件,如果这样可以更容易阅读/维护。