我似乎在 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