我计划创建自己的域名停放解决方案。我的 /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");
}
?>