快速淘汰
- 您需要在DNS服务器* .website.com上创建通配符域
- 然后在您的vhost容器中,您还需要指定通配符* .website.com-在DOC中完成
ServerAlias
- 然后提取并验证PHP中的子域并显示适当的数据
长版
1.创建一个通配符DNS条目
在DNS设置中,您需要创建一个通配符域条目,例如
*.example.org。通配符条目如下所示:
*.example.org. 3600 A 127.0.0.1
2.在vhost中包含通配符
接下来,在Apache配置中,您需要设置一个虚拟主机容器,该容器在
ServerAlias
DOCs指令中指定通配符。示例虚拟主机容器:
<VirtualHost *:80> ServerName server.example.org ServerAlias *.example.org UseCanonicalName Off</VirtualHost>
3.确定您在PHP中使用的是哪个子域
然后,在PHP脚本中,您可以通过查看
$_SERVER超级全局变量来查找域。这是在PHP中获取子域的示例:
preg_match('/([^.]+).example.org/', $_SERVER['SERVER_NAME'], $matches);if(isset($matches[1])) { $subdomain = $matches[1];}我在这里使用了正则表达式,以允许人们通过www.subdomain.example.org或subdomain.example.org访问您的网站。
如果您从未想到过要与www打交道。(或其他子域),则可以像下面这样简单地使用子字符串:
$subdomain = substr( $_SERVER['SERVER_NAME'], 0, strpos($_SERVER['SERVER_NAME'], '.') );
大规模虚拟主机
大规模虚拟主机与上述方案略有不同,因为您通常会使用它来托管许多不同的网站,而不是像问题所建议的那样尝试使用它为应用程序提供动力。
Apache还具有内部处理海量虚拟主机的方式,该方式比我使用的mod_rewrite方法的灵活性稍差。在Apache
动态配置的批量虚拟主机手册页上对此进行了全部描述。



