2012-03-05 137 views
3

一切的DocumentRoot在我的Windows 7添加的Apache虛擬主機的本地主機更改虛擬主機的DocumentRoot

正常使用的問題是,當我加入domain1.com如虛擬主機,本地主機的DocumentRoot更改虛擬主機的DocumentRoot。

例如: 當我訪問http://localhost時,我爲domain1.com指定的DocumentRoot被打開,而不是httpd.conf中指定的DocumentRoot。

我的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> 

我的Hosts文件:

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> 

我知道一個解決方案是添加Virtual Server與ServerName作爲127.0.0.1或本地主機,但我避免這一點。

我可以使httpd.conf中指定的localhost的DocumentRoot成爲默認的嗎?

如果您需要更多信息,請讓我知道。

謝謝, 雪茄。

回答

6

https://httpd.apache.org/docs/2.2/vhosts/name-based.html

指出:「如果您要添加虛擬主機,以現有的Web服務器,您還必須創建爲現有主機街區,服務器名稱和DocumentRoot的包括在這個虛擬主機應該是一樣的全局ServerName和DocumentRoot,首先在配置文件中列出這個虛擬主機,這樣它將作爲默認主機。「

+0

即使現在也非常有用... – z3ntu 2016-01-29 13:59:46