我有一个名为 Homenet.com 的域名,它有两个子域名:wiki.homenet.com 和 intranet.homenet.com。出于某种原因,无论我输入什么,它总是显示来自 intranet.homenet.com 的内容。我的虚拟主机文件如下:
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName intranet.homenet.com
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName wiki.homenet.com
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/wiki"
</VirtualHost>
我曾经通过从运行我的 DNS 和 Apache (Windows XP) 的同一台服务器浏览 wiki.homenet.com 让它工作过一次,但后来我做了一个更改并重新启动了 Apache,它就停止工作了(即使在我撤消更改之后也是如此)。我检查了这个论坛上的其他新闻,我的 vhost 文件似乎是正确的……但就是不起作用。有什么想法吗?谢谢!
PS> 我有一个正在运行的 DNS 服务器,它将 wiki.homenet.com 和 intranet.homenet.com 定向到我的 Apache 服务器。Apache 和 DNS 都位于同一台服务器上 (192.168.1.149)。
答案1
我想知道您是否在 httpd.conf 中UseCanonicalName
设置了?这可能是导致问题的原因。如果 UseCanonicalName 处于打开状态,则您在 VirtualHost 指令之外为 ServerName 设置的任何值都将始终使用。请参阅on
Apache 文档更多细节。
答案2
经过几个小时的尝试,终于解决了这个问题。我的 VirtualHost 文件现在如下所示
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
ServerName intranet.homenet.com
ServerAlias intranet
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName wiki.homenet.com
ServerAlias wiki
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/wiki"
</VirtualHost>
还必须正确重启 Apache 和 DNS 才能使一切正常运行。现在我只需输入维基百科然后它直接带我进入我的 MediaWiki