通配符子域的CNAME只能获取默认的服务器页面

我们有一个服务器configuration的问题,我希望我能得到一些帮助,因为它驱使我们疯了!

基本上,我们有一个在domain.com上设置的应用程序,并在同一个域上为用户设置了通配符子域。 我们希望像tumblr那样为用户实现自定义域,以便用户创build一个CNAME到他的子域,例如:

userdomain.com -> CNAME -> user.ourapp.com 

在为一个用户设置好之后,他的域只是路由到我们的服务器默认页面。 在与plesk联系后,回复是这样的:

根据内部Web服务器逻辑,基于名称的主机使用HTTP头中的主机名进行工作。 在DNS中仅使用CNAMElogging将不起作用,因为DNS仅返回新服务器IP,浏览器将转到该IP,但旧服务器名称仍保留在HTTP标头中。

而networking服务器收到这样的请求后,应该会像它应该的工作,它将不成功地尝试finduserdomain.com并打开默认的虚拟主机,在我们的例子Media Temple Server页面。

嗯不错。 所以我们稍微编辑了我们的configuration。 我们正在运行Plesk 10.4,在通配符子域下,我们有一个虚拟主机的httpd.include文件。

在那里我们有这个:

 <VirtualHost 64.207.159.248:80> ServerName "_.ourapp.com:80" ServerAlias "*.ourapp.com" UseCanonicalName Off ... 

现在,我们尝试删除ServerName并保持Alias,并使用/etc/init.d/httpd重新加载configuration,但我们仍然得到一个默认的服务器页面。

我们被困住了。

有没有人有过这个问题的经验之前,有没有解决scheme?

在此先感谢沃伦

浏览器仍然会发送一个Host: userdomain.com头,CNAMElogging不会导致redirect。 因此,您需要在您的configuration中使用ServerAlias userdomain.com 。 在您的应用程序中,您将需要将userdomain.com关联到用户。