使外部域指向可能的虚拟主机上的子域 – GoDaddy

我不知道这个DNS的东西。 我甚至不知道这应该是在stackoverflow或serverfault,但反正…

我有一个网站在example.com其IP是1.2.3.4 ,我有子域名sub.example.com的IP地址也是1.2.3.4 。 这个网站在GoDaddy注册。

我假设我的网站是在一个虚拟主机,因为http://1.2.3.4显示我一个不同的页面比我的主页http://example.com ,我在共享主机

服务器正在运行Apache 2.2

现在我有另一个域( my-other-domain.com ),这是没有注册GoDaddy和别人正在pipe理它。 他所要求的只是服务器的IP地址(即1.2.3.4 )。 我希望my-other-domain.com指向sub.example.com 。 如果他做了A-Record ,使my-other-domain.com指向我的服务器的IP是1.2.3.4 ,它会去哪里? 我是否也需要编辑我的A-Records ? 因为我假设我的网站在虚拟主机上,所以我没有保证我的域名服务器已经知道my-other-domain.com是谁的!

我没有访问Apache conf文件。 任何人都熟悉GoDaddy控制面板?

正在使用的技术被称为基于名称的虚拟主机 。 Web服务器从客户端请求中读取主机头,search其上的主机列表,然后显示相关网站或默认匹配失败。

您需要将您的sub.example.comconfiguration为my-other-domain.com的别名。 这很容易通过sub.example.com的VirtualHost定义中的ServerAlias指令来实现

 <Virtualhost *:80> ServerName sub.example.com ServerAlias my-other-domain.com </VirtualHost> 

你必须了解DNS和Apache / HTTP的关系。

  • 如果您从浏览器联系了http://1.2.3.4 ,它将直接联系服务器,并要求为站点1.2.3.4默认文档,这通常不是共享主机上的主站点,而是提供商configuration的内容。

  • 如果您联系http://example.com ,您的浏览器将向DNS请求地址example.com1.2.3.4. ),然后联系服务器并要求提供站点example.com的默认文档,即您的主要网站。

  • sub.example.com也是如此,当然它会要求这个子站点的默认文档。

  • 如果您现在拥有其他域名my-other-domain.com ,您的浏览器将获得与以前相同的IP,并向服务器请求该域的默认文档,但由于Apache不知道具有此名称的站点,它会回落到第一种情况下的默认情况下,并将像http://1.2.3.4 (这是最有可能的configuration,但也有可能)提供默认文档。

因此,您需要做的是为新域configurationApache。 这是如何做的很大程度上取决于你所在的系统。 它可能是一些configuration面板软件,如Plesk,或者提供者需要自己做,或者你可能需要手动编辑configuration文件。