在用户注册时创建子域名

在用户注册时创建子域名

我有一个网站,希望注册的用户能获得自己的子域名。这个子域名是虚拟的,每个子域名都使用相同的 Web 服务器文件。

我使用 PHP 和 Apache,并且了解虚拟主机,但我不知道应该将 vhosts 代码放在哪里。首先,我无法访问 httpd.conf。其次,我希望注册时自动完成此操作。

我读过有关虚拟主机的文章,但没有找到任何可以回答我的问题的内容。我应该在哪里添加此代码,我可以在不访问除 webserver 文件夹(不是 Apache)之外的任何内容的情况下执行此操作吗?

答案1

将 vhosts 代码放在根 .htaccess 文件中可能会起到作用。

答案2

如果无法访问 httpd.conf 文件或某些包含的文件,您就无法配置真正的虚拟服务器,因为虚拟主机必须在服务器上下文中进行配置,这意味着它们不能进入 .htaccess。

但是,您可以配置默认虚拟服务器,并在您的网站内处理虚拟服务器代码。这是一种更糟糕的做法,但它可以发挥作用。

答案3

我假设由于您无权访问 httpd.conf,因此您是在网络主机上。通常,他们有一个选项可以将所有子域重定向到单个站点。通过将配置的子域存储在数据库中,并使用同一组文件,您可以$_SERVER['HTTP_HOST']按照 gorilla 的建议使用变量来显示正确的内容。我过去曾使用过它来显示多个博客,而无需修改 DNS 或 Apache 配置。需要注意的是,它需要您的网络主机支持它。

实际配置由如下 DNS 记录组成:

*.domain.net. 14400 IN A 123.123.123.123

以及不检查子域的 httpd.conf(可能是 .htaccess,从未尝试过)配置。例如:

ServerAlias *.domain.net

相关内容