2

我是 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 个域指向正确的代码段)。

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

4

1 回答 1

0

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

您可以将主站点和他们建议的信息站点(作为一个捆绑包)结合起来,但这样做的唯一原因是在它们之间共享一些东西,这可能不是这种情况,因为它们具有不同的设计和内容。如果只是将它放在“/info”上,这可以通过精心设计的虚拟主机配置来实现(不能给出太多的指导)。

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

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

现在,关于 35 个专业站点,您应该通过 Virtual Host 的ServerAlias将所有 URL 指向同一个应用程序。

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

于 2013-03-07T18:21:46.133 回答