我正在尝试在我的网络上的计算机上配置多个虚拟主机,但是,无论我使用什么来访问servername,apacche总是指向第一个主机。
这是我的vHosts文件
<VirtualHost eurekahom:7777>
DocumentRoot "d:\vhosts\eurekahom\controller/"
ServerName eurekahom
# RewriteEngine On
# RewriteOptions Inherit
<Directory />
AllowOverride All
</Directory>
php_value include_path ".;d:\vhosts\eurekahom\controller\includes/"
</VirtualHost>
<VirtualHost eurekades:7777>
DocumentRoot "d:\vhosts\eurekades\controller/"
ServerName eurekades
<Directory />
AllowOverride All
</Directory>
php_value include_path ".;d:\vhosts\eurekades\controller\includes/"
</VirtualHost>
<VirtualHost mauricio:7777>
DocumentRoot "d:\htdocs\mauricio"
#\controller/"
ServerName mauricio
# RewriteEngine On
# RewriteOptions Inherit
<Directory />
AllowOverride All
</Directory>
php_value include_path ".;d:\htdocs\mauricio"
</VirtualHost>
有谁知道发生了什么事?
答案 0 :(得分:1)
我相信虚拟主机有基于IP的匹配和服务器名称匹配。所以无论你在这里输入什么:<VirtualHost ________:7777>
都应该是一个IP地址。由于您不希望通过IP进行匹配,因此您只需保留*:7777
。
是的,您的所有陈述都将以<VirtualHost *:7777>
开头。当请求来自该7777端口时,Apache将尝试按服务器名称进行匹配,然后将考虑ServerName
参数。
<Directory>
语句可能还有更多问题,但我认为这并不是导致Apache始终始终使用第一个VirtualHost的原因。
以下链接非常有用,因为当我遇到一个非常类似的问题时,它帮助了我: https://wiki.apache.org/httpd/CommonMisconfigurations
答案 1 :(得分:0)
我通常不会在VirtualDirectory元素中指定主机名,而是将其保留在*:7777
此外,对于htdocs
文件夹之外的目录,我使用其他目录选项:
<Directory "C:\Projects\spacelysprockets"> Options All AllowOverride All Require all granted </Directory>