使用Laravel通过一个代码库为多个域提供服务

时间:2013-02-28 15:56:38

标签: php laravel

我是Laravel的新手,现在正在研究如何使用Laravel来完成我正在进行的这个项目。我有一些关于接近它的想法,并想知道专家将如何完成这项工作。

案件 我正在开发一个项目,它有CMS,一个信息丰富的网站和大约35个专业网站。 CMS,信息网站和专业网站在内容和设计上有所不同。但是所有35个专业网站都差不多。设计和布局相同,但网站包含不同的内容。目前,所有站点都拥有自己的代码库,这使得维护非常困难。

我现在正在寻找一种只使用一个代码库的解决方案。 CMS和站点共享一些功能,两者都具有自己的功能。 我只是不确定如何做到这一点。

这些网站在安装了DirectAdmin的专用网络服务器上运行。在DirectAdmin中,可以创建域指针。这样我就可以通过检查http_host变量来创建一个显示正确内容的站点。此外,如果有一天专门的站点需要不同的功能,我也可以检查http_host。我不确定是否有任何SEO的结果以及它是否是一个简洁的解决方案。

我已经阅读了关于捆绑并想到将它们用于信息和专业网站的内容。然后,“主”应用程序目录将托管CMS。 site.com/将成为cms,site.com/info将显示一个托管信息站点的软件包,site.com/special将显示专用站点的软件包。 使用域指针时,某些域将显示另一个域的站点。但是,当它位于site.com/(bundle)时,我认为这不适用于捆绑包。

我已经有一个数据库,http_host是不同的内容。我现在想知道如何构造代码(以及如何将35个域指向正确的代码片段)。

我希望这里的专家可以告诉我一些关于如何完成这项工作的最佳实践。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我建议你保留3个项目(每个站点一个)。

您可以将您建议的主站点和信息站点组合在一起(作为一个捆绑包),但这样做的唯一原因是在它们之间共享某些东西,这可能并非如此,因为它们具有不同的设计和内容。如果它只是在“/ info”上有一个问题,这可以通过精心设计的Virtual Host配置来实现(不能给那个方向太多的方向)。

虽然,我建议您将信息网站保留在http://info.site.com上。在不同的域(或子域)上拥有不同的网站对我来说是“正确的”。有些人甚至主张这是正确的做法,但谁知道......

如果您有可以在所有项目之间重复使用的库,我建议将这些库放在一个包上并在所有项目中包含该包。

现在,关于35个专业网站,您应该通过虚拟主机ServerAlias将所有网址指向同一个应用程序。

在该应用程序上,您应该定义Environments,它允许您根据URL配置它的某些方面。例如,您可以为每个网站定义不同的数据库,创建单独的日志文件,语言,可在/ application / config上配置的任何内容。您也可以创建自己的配置。