Apache 虚拟主机

Apache 虚拟主机

我似乎在 Apache 中的虚拟主机方面遇到了一些麻烦。

我已将 127.0.0.1 www.mysite.com 添加到 Windows 中的 hosts 文件中,并且看到我的 Web 服务器正常运行。

然后,我将下面的内容添加到我的配置文件中,作为最后的内容,我不知道它去哪里是否重要!

NameVirtualHost *

<VirtualHost *> 
ServerName unknown
DocumentRoot "C:/xampplite/htdocs"
</VirtualHost> 

<VirtualHost www.mysite.com> 
ServerName www.mysite.com
DocumentRoot "C:/xampplite/htdocs/mysite"
</VirtualHost> 

因此,我想要实现的是,访问 www.mysite.com 将显示 /mysite 文件夹和其他任何内容 - 或者仅访问 127.0.0.1 将默认返回到主 htdocs 文件夹。

但事实并非如此。

所有内容最终都进入 mysite 文件夹。

查看错误日志,发现启动时发生此问题:

[Tue Sep 13 19:45:08 2011] [error] VirtualHost _default_:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

为了记录,我监听了端口 80 和 1337(虽然不太好)。

答案1

尝试这个配置:

DocumentRoot "C:/xampplite/htdocs/"

<VirtualHost *:80>
    ServerName www.mysite.com
    ServerAlias www.mysite.com
    DocumentRoot "C:/xampplite/htdocs/mysite"
    <Directory "C:/xampplite/htdocs/mysite">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

因此,当您使用时:127.0.0.1它将转到默认值DocumentRoot ("C:/xampplite/htdocs/"),而当您使用时www.mysite.com它将转到:"C:/xampplite/htdocs/mysite"。您不需要NameVirtualHost

相关内容