带有Windows主机名的Apache虚拟主机条目

我有一个Windows域控制器,我们将其用于DNS内部networking。 我有一个IP地址为172.16.34.149的Ubuntu盒子。 在Windows DNS中,我为Endymion名称创build了正向和反向查找条目。

自然,当我FTP / SSH / HTTP /等主机名Endymion它正确地解决我的Ubuntu的盒子。

我想在现有网站的这个框上做一些networking开发。 将网站放在/ var / www /子文件夹中时出现问题。 我们只是说它在文件夹/ var / www / projectx /中。 这个问题涉及不正确的解决非相对的url。

所以我想我可以为主机名projectx创build一个新的DNS条目。 果然,当我FTP / SSH / HTTP / etc的主机名projectx它需要我的主机名Endymion相同的Ubuntu的盒子…这是我所期望的。 我现在有两个主机名为同一个盒子。

然后我在httpd.conf中创build一个如下的虚拟主机条目:

<VirtualHost *:80> DocumentRoot /var/www/projectx ServerName projectx ServerAlias projectx </VirtualHost> 

果然,当我去浏览器,并inputhttp:// projectx /它带我到正确的子文件夹。 一切正常!

没那么快

然后我去http:// endymion /而不是带我到/ var / www /它需要我/ var / www / projectx /

显然我错过了一些东西。 请帮助! ;)

看看基于名称的虚拟主机上的Apache文档,你会发现这些信息:

主人走开

如果要将虚拟主机添加到现有Web服务器,则还必须为现有主机创build一个块。 此虚拟主机中包含的ServerName和DocumentRoot应与全局ServerName和DocumentRoot相同。 首先在configuration文件中列出这个虚拟主机,以便它作为默认主机。

换句话说,只要创build一个虚拟主机,主服务器configuration中的DocumentRoot变得不相关。 Apache将select第一个定义的虚拟主机,用于没有明确地匹配ServerNameServerAlias指令的ServerName ,因此您将需要在configuration文件中的任何其他VirtualHost之前为主要主机创build一个条目。

我想你还需要为endymion创build一个虚拟主机条目,如下所示:

 <VirtualHost *:80> DocumentRoot /var/www/example ServerName endmymion ServerAlias endmymion </VirtualHost> 

当然使用默认的 vhost也可以像上面所说的那样工作。