6

我对子域和 dns 记录几乎一无所知。我听说过他们,我只知道基础知识。

实际上,在我的服务器上,我确实在 plesk 下创建了子域,然后联系我的主机以创建正确的 dns。并且在 1-2 天内,子域可以从任何地方访问(plesk 可以自动管理 dns,我知道,但因为我不知道 dns 究竟是如何工作的,我更愿意让我的主机处理它们)

但是..当您在 wordpress.com、posterous.com 等上注册时,他们会创建一个像http://yourname.service_name.com这样的子域,在几秒钟内就可以准备好.. 怎么样?

我知道这可能是一个很难回答的问题,因为我的无知我不知道如何更好地提出这个问题-.-

哦,如果有帮助的话,我的环境必须是linux(实际上是debian)

4

4 回答 4

19

大多数人通过使用通配符 DNS 记录来实现这一点,这给人一种立即创建子域的感觉。


一旦你有了这样的通配符 DNS 设置:

 *.example.com          A     77.75.105.197

您需要告诉 Apache 您希望所有子域都被虚拟主机捕获,您可以使用ServerAlias执行此操作:

ServerAlias *.example.com

在 PHP 中,您可以查看$_SERVER["SERVER_NAME"]以找出已用于访问虚拟主机的子域,然后您可以拥有子域特定的代码/内容。

于 2009-07-21T10:32:17.057 回答
2

以下是 pastebin.com 的做法:

  • 通配符 DNS 记录指向网络服务器 IP 处的所有子域
  • apache 会将所有对“未知”域的请求发送到第一个虚拟主机 - 您使该主机上的代码能够对域名做一些有趣的事情(在 PHP 中,这表示为 $_SERVER['HTTP_HOST']

这样,不需要重新配置 DNS 或 Apache。

于 2009-07-21T10:47:14.030 回答
0

Wordpress 不创建子域,甚至无法创建子域,因为这是 apache 虚拟主机配置文件的一部分。

创建子域的唯一方法是创建另一个虚拟主机记录,将其添加到 DNS 记录中,但这需要 24 小时才能刷新 DNS 服务器。Plesk 和其他控制面板可以做到这一点,但 Wordpress 不能,因为它只是 PHP 脚本,可能甚至没有权限执行此类操作。此外,您没有指定配置文件的位置,因此 Wordpress 无法知道虚拟主机的位置:)

请告诉我们更多关于 Wordpress 子域的信息,您在哪里创建它们等。

于 2009-07-21T10:30:52.567 回答
0

另请注意,您可以通过。Apache 对其进行了设置,因此它在传入主机名上使用正则表达式,并通过此设置的文档根目录如下:

/var/www/topleveldomain.com/subdomain/wwwroot

这会给人一种错觉,即配置文件发生了变化,并且所有的黑魔法都允许 mysubdomain.topleveldomain.com 成为一个新的子域,只需在正确的位置创建一个文件夹。

另请注意,这与 DNS 记录中的星号别名有关。

但是,我怀疑这就是 wordpress 的做法,而 Paul Dixon 提到的方式可能更有可能。

于 2009-07-21T10:56:32.153 回答