子域的VirtualHost还将流量重新路由到主机域

时间:2015-07-19 12:49:15

标签: apache dns virtualhost

我正在尝试这样做,当有人访问我的网站sub.example.com时,它会将其发送到与访问example.com的人不同的文件夹。很简单,是吗?这是我用来做的代码:

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/sub"
    ServerName sub.example.com
    ServerAlias sub.example.com
</VirtualHost>

我为域名设置了通配符的DNS,以便任何子域仍然指向我的服务器。

问题是,现在只要有人访问example.comsub.example.com或任何子域,就会显示/htdocs/sub

中的内容

我只希望在访问/htdocs/sub时显示sub.example.com,我该怎么做?

从我所看到的,我的执行似乎是正确的,但也许我错过了导致这种情况发生的一件事情?我重新安装xampp无济于事

我的主httpd.conf有这一行ServerName example.com:80如果这有帮助

1 个答案:

答案 0 :(得分:1)

我最终找到了一个解决方案,对于未来遇到同样问题的人来说,这就是我所做的:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot "C:/xampp/htdocs/"
</VirtualHost>


<VirtualHost *:80>
    ServerName sub.example.com
    DocumentRoot "C:/xampp/htdocs/sub"
</VirtualHost>

我假设基本上VirtualHost要区分sub.example.comexample.com,那么在配置任何子域之前,必须首先为example.com定义VirtualHost