0

我使用 Nearfreespeech.net 作为虚拟主机,我厌倦了必须在我的网站上为 3 个子域管理 3 个站点,所以我正在研究如何从一个站点为所有 3 个站点提供服务。

每个站点都是一个 shortname.nfshost.com 域,并且可以具有子域或域的别名。例如.com 和 sub.example.com,我通常会创建两个站点,examplewww 和 examplesub(我尽量使短名称清晰),并将 www.example.com 和 example.com 设置为 examplewww 和 sub .example.com 作为 examplesub 的别名,然后将名称的 cname DNS 记录指向 shortname.nfshost.com。

我的解决方案是将一个站点设置为 PHP(因为它们对 PHP 的收费高于对静态的收费),具有以下内容:

<?php $site = $_SERVER['HTTP_HOST'];
  if ($site == 'example.com') {
    include('www.example.com.php'); # If domain is example.com, serve that page
  } elseif ($site == 'sub.example.com') {
    include('sub.example.com.php'); if domain is sub.example.com, serve that page instead
  } elseif ($site == 'www.example.com') {
    header('Location: http://example.com'); redirects www to no-www
  } else {
    header('Location: http://example.com'); don't let browser go to examplewww.nfshost.com
} ?>

包含的 2 个 PHP 文件以引导程序为主题,带有 CSS/图像的 CDN 链接(引导程序 cdn,我自己的静态站点,我称之为 CDN(它有一个复杂的 htaccess 重定向和按站点分隔的文件夹,所以我管理的每个站点都可以有自己的图像)),除了 404 错误页面(也是引导程序),这些是服务器上唯一的文件(索引,sub.example.com 包括,www.example.com 包括,404)。

我可以毫无问题地在包含的 PHP 文件中运行 PHP 代码,甚至可以让它们包含其他文件。输出看起来正常(HTML,看起来有效)。

在通过包含 CMS 的索引(如 index2.php)出现一些故障(设置 base_url)之后,我能够使用一个 CMS 平台,并且我有点工作,如果网站没有,我可以拒绝目录匹配(sub.example.com/folder 如果来自 www.example.com,我可以返回 404)。

问题:这有什么问题吗?我觉得我把它弄得太复杂了,我对PHP不是很了解,也不知道这是否有我想不到的问题。

我还认为,如果这个解决方案这么简单,我会在我的许多 Google 搜索中的某个地方看到它,这让我觉得它不是一个好的解决方案。有什么理由不让它这么复杂吗?

我不担心停机时间或类似的事情。根据谷歌分析,除了我自己的访问,我的网站每月可能有 3 人访问,而且主要是联系信息(但我有一些 php 脚本来显示信息,所以我需要所有 3 个子域都有 php,使用 Nearfreespeech 会稍微贵一点)。

4

0 回答 0