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.com
和www.example.com
的请求可以引用一个站点,但是example2.com
可以引用其他站点。index.php
文件确定访问的站点和页面后,它将从数据库中获取该请求的相关信息,然后创建一个称为$site[]
的关联数组,该数组存储所有信息以存储所做的请求。然后使用此数组来确定要阅读的资产,例如CRM的特定模板,以及在该特定网站和页面中读取哪些资产(例如CSS,JS等)。