Apache 上的多个域名指向同一个虚拟主机?域名停放?

Apache 上的多个域名指向同一个虚拟主机?域名停放?

我计划创建自己的域名停放解决方案。我的 /var/www 上会有一些包含静态网站的文件夹,我会将一些域名(200 个或更多)停放在一些文件夹中。一些域名将停放在某个文件夹中,其他域名将停放在其他文件夹中。例如:

200 个域名将被定向到 /var/www/example 300 个域名将被定向到 /var/www/example2

我如何以自动化方式控制它?我正在考虑创建一个 PHP 脚本来帮我完成这项工作,但这在 Apache 端如何工作?

答案1

最简单的方法是拥有两个 IP 地址,然后只需绑定到 IP 地址,而不管使用的主机名是什么。所以任何访问该 IP 地址的网站,无论域名是什么,都会加载同一个网站。

这是唯一可行的方法。您确实不想为 200 个域维护一个虚拟主机并编写脚本。

快速道德说明:域名停放和域名抢注非常非常密切相关,后者在某些顶级域名和司法管辖区中是非法的,并且在所有司法管辖区中都是不受欢迎的。如果您侵犯商标权(包括常见的域名拼写错误),您也会遇到麻烦,所以我真的非常希望您停放的是您自己的或您客户的合法域名

答案2

我可以考虑用 PHP 解决方案,例如:

<?
 // get the domain requested
$requested_domain = $_SERVER["SERVER_NAME"];

// you can also create a database with fields **domain** and **parktype** instead of an array
$park_one = array("domain1.com", "domain2.com");
$park_two = array("domain3.com", "domain4.com");

SWITCH(TRUE)
{
     // check if the domain exists in array $park_one
    case in_array($requested_domain, $park_one):
    header("Location: http://www.example1.com");
    break;

    // check if the domain exists in array $park_two
    case in_array($requested_domain, $park_two):
    header("Location: http://www.example2.com");
    break;

    default:
    //if none of the above applies, redirect to a third domain
    header("Location: http://www.example3.com");

}  
?>

相关内容