如何使用共享代码库布局多站点应用程序



4网站共享相同的代码库,每个代码库都有一个唯一的域。某些功能可能取决于域而不同,并且同样适用于CSS,JavaScript和图像文件。

现在,获取PHP中信息的首选方法是什么,请求哪个域?任何人都可以指出以下提案的优势/缺点,还是提出更好的建议?

解决方案1:点所有4个域到同一index.php,并通过$_SERVER['SERVER_NAME']

获取域

解决方案2 喜欢1.,一个index.php,用于所有域,但是通过mod_rewrite将域作为查询参数传递:

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{HTTP_HOST} ^(.*) [NC] RewriteRule ^ index.php?site=%1 [QSA,L]

解决方案3:将4个域指向4个不同的索引PHP,也许在4个不同的公共文件夹中,并在这些index.php文件的顶部定义域。

这听起来可能很琐碎,或者不重要,但我想确保选择最佳解决方案。

我们以前已经完成了此操作,我们使用了一个用于构建网站的框架,该框架支持使用相同的安装代码库,用于 n 网站数量。我们这样做是:

  • 所有域都指向相同的同一 index.php文件DocumentRoot。
  • 使用.htaccess,所有页面都指向index.php的所有请求并重写规则。

然后index.php文件设置环境。我们有一个数据库表,将$_SERVER['SERVER_NAME']的结果与所请求的站点链接到一对一的关系。这样,对example.comwww.example.com的请求可以引用一个站点,但是example2.com可以引用其他站点。index.php文件确定访问的站点和页面后,它将从数据库中获取该请求的相关信息,然后创建一个称为$site[]的关联数组,该数组存储所有信息以存储所做的请求。然后使用此数组来确定要阅读的资产,例如CRM的特定模板,以及在该特定网站和页面中读取哪些资产(例如CSS,JS等)。

相关内容

  • 没有找到相关文章