我正在寻找有关如何使用一个Drupal实例(使用Pressflow 6.x)为多个站点提供最佳服务的专家建议。让我们考虑一下这个被称为“ABC集团公司”的公司,它有3个姐妹关注点。因此,总共会有四个站点:
以下是最有趣的事情:
现在,我正在考虑使用DNS条目,因此每个域都指向相同的Drupal安装,当Drupal被引导时,我想嗅探$ _SERVER数组以了解哪个站点被命中。然后,我想相应地加载主题,显示特定于该网站的内容,并显示与所有网站共享的内容。
为了实现这一点,到目前为止,我创建了一个名为“Site”的节点类型,并为每个站点创建了四个内容。然后,对于每个其他内容类型(例如,页面),我已将节点引用放入具有多个值的“站点”内容类型,因此在创建新内容时,管理员可以指定将在哪个站点显示内容。然而,在那之后我被卡住了。
我试图理解上下文,空间,PURL - 但还没有完全理解它们,我相信我可以利用社区力量来帮助我。您认为处理这种情况的最佳方法是什么?
如果有人能提出方向,那将会非常有帮助。
此致
埃姆兰
答案 0 :(得分:5)
您建议的方式当然是您可以这样做的方式,但您是否考虑过域名访问?我过去曾经使用它,发现它非常有用。还有相当多的模块集合可以使用它。不同的主题,关于哪些节点应出现在哪些站点和共享用户上的选项都是它具有的所有功能。
希望这有帮助!
答案 1 :(得分:4)
首先,我强烈第二次建议使用Domain Access Module进行此操作(+1)。它为您的场景提供了广泛的支持/功能,并且已经覆盖了您自己需要解决的大部分难题。
其次,如果你坚持尝试自己这样做,我可以向你保证这是可能的,因为我们最近做了一些非常相似的事情(一些特殊要求排除了域名访问权限),但是这是很多工作,特别是当贡献模块提供的功能不适合我们的“不寻常”场景时。
鉴于您必须涵盖的大量特殊情况,很难指出一个大方向(除了建议使用Domain Access Module;)但一个主要观点是检查{{ 3}} / custom_url_rewrite_inbound()
功能组合。这些将允许您对传入请求以及为输出生成的URL执行相当低级别的URL操作,如果您要从同一实例提供多个域,则需要执行这两种操作。
我是否提到您应该在尝试自己构建之前查看custom_url_rewrite_outbound()
?
答案 2 :(得分:0)
听起来这些网站之间几乎没有内容共享。您是否希望在所有网站上进行一次登录? 请记住,Domain Access使用1个共享数据库。 您也可以只进行常规的多站点安装,并共享某些表。
我给了Domain Access两个大拇指,但只是确保你真的需要它实际上做的事情。
另外,我会查看Feeds.module。您可以从任何地方(尤其是另一个drupal站点)提取内容,然后直接导入内容并自动创建节点和字段。