apache vhost _default_与localhost问题

时间:2012-10-06 01:53:27

标签: apache vhosts

不知道如何更好地描述标题。问题是:

我为我的工作广泛使用vhosts,但偶尔我只是把一些文件打到localhost / mysite

当我使用vhost(即mysite.local)时,我可以按照“开箱即用”的方式设置我的第一个vhost,然后放入mysite.local vhost块:

<VirtualHost _default_:80>
   DocumentRoot C:/UniServer/www
   ServerName localhost
   ErrorLog "logs/error.log"
   CustomLog "logs/access.log" common
</VirtualHost>

<VirtualHost 127.0.0.1>
ServerAdmin webmaster@localhost
ServerName mysite.local
DocumentRoot "C:/UniServer/www/mysite/public_html/"
SetEnv ENVIRONMENT localhost
</VirtualHost>

但如果我想使用localhost / mysite,我必须将其更改为:

<VirtualHost localhost:80>
    DocumentRoot C:/UniServer/www
    ServerName localhost
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

显然,这是一种痛苦,因为它包括重启apache。

我的httpd.conf设置为:

ServerName localhost

.htaccess似乎不会影响它。如果有人能给我一个带头的话,真的很感激!

编辑:应该提到,当我想使用mysite.local时,我不能使用:

<VirtualHost localhost:80>

我必须使用:

<VirtualHost _default_:80>

因此它在两个方向都“破碎”

谢谢,

杰夫

2 个答案:

答案 0 :(得分:0)

好吧,我脸上的蛋 - 有点像

<VirtualHost localhost>  for localhost/mysite

<VirtualHost 127.0.0.1> for mysite.local

工作,有或没有端口,长期与他们匹配(两者:80或两者都没有)

BUT

<VirtualHost _default_>  for localhost/mysite

根本不起作用,没有办法,没有办法 - 它只对mysite.local有用

这是与hosts文件:     127.0.0.1 localhost     127.0.0.1 mysite.local

如果有人能解释为什么“默认”表现得那么会感兴趣

答案 1 :(得分:-1)

看起来你在Windows上这样做了。取出mysite.local VHost底部的SetEnv,你需要检查两件事:

确保您的hosts文件或本地DNS有一个指向127.0.0.1的mysite.local条目。 Windows上的hosts文件位于c:\ windows \ system32 \ drivers \ etc \ hosts

如果这不起作用,请确保将您设置为命名虚拟主机,例如:

NameVirtualHost *:80

NameVirtualHost 127.0.0.1:80