在我的Windows 7中,一切都运行良好。
问题是当我将 domain1.com 添加为VirtualHost时,localhost的DocumentRoot会更改为VirtualHost的DocumentRoot。
例如: 当我访问http://localhost时,我打开了为domain1.com指定的DocumentRoot,而不是httpd.conf中指定的那个。
我的httpd-vhosts.conf文件是:
NameVirtualHost 127.0.0.1:80
NameVirtualHost domain1.com:80
<VirtualHost domain1.com:80>
<Directory "e:/program files/apache/htdocs/domain1.com">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName domain1.com
ServerAlias domain1.com
ScriptAlias /cgi-bin/ "e:/program files/apache/htdocs/domain1.com/cgi-bin/"
DocumentRoot "e:/program files/apache/htdocs/domain1.com"
ErrorLog "E:/Program Files/apache/logs/domain1.com.err"
CustomLog "E:/Program Files/apache/logs/domain1.com.log" combined
</VirtualHost>
我的主机档案:
127.0.0.1 domain1.com
我的httpd.conf文件:
DocumentRoot "e:/program files/apache/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "e:/program files/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我知道一个解决方案是添加VirtualHost,ServerName为127.0.0.1或localhost但我避免这样做。
我可以将httpd.conf中指定的localhost的DocumentRoot设为默认值吗?
如果您需要其他信息,请与我们联系。
谢谢, Jigar。
答案 0 :(得分:9)
如https://httpd.apache.org/docs/2.2/vhosts/name-based.html
中所述“如果要将虚拟主机添加到现有Web服务器,还必须为现有主机创建<VirtualHost>
块。此虚拟主机中包含的ServerName
和DocumentRoot
应该与全局ServerName
和DocumentRoot
相同。首先在配置文件中列出此虚拟主机,以便它将充当默认主机。“