apache vhost默认值与本地主机问题

apache vhost默认值与本地主机问题,apache,vhosts,Apache,Vhosts,不知道如何更好地描述标题。问题是: 我在工作中广泛使用vhost,但有时我只是将一些文件插入localhost/mysite 当我使用vhost(即mysite.local)时,我可以将我的第一个vhost设置为从框中取出的方式,然后将mysite.local vhost块放入: <VirtualHost _default_:80> DocumentRoot C:/UniServer/www ServerName localhost ErrorLog "logs/e

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

我在工作中广泛使用vhost,但有时我只是将一些文件插入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设置为:

服务器名本地主机

.htaccess似乎不是影响它的因素。如果有人能给我一个线索,我会非常感激的

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

<VirtualHost localhost:80>
我必须使用:

<VirtualHost _default_:80>
所以它在两个方向上都被破坏了

谢谢


杰夫

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

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

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

NameVirtualHost *:80


嗯,鸡蛋在我脸上-有点

<VirtualHost localhost>  for localhost/mysite

工作,有或没有端口,只要两者都匹配:80或两者都不匹配

但是

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

这与主机文件有关: 127.0.0.1本地主机 127.0.0.1 mysite.local


如果有人能解释为什么默认值是这样运行的,我会很感兴趣的

谢谢-SetEnv与此无关,尽管我仔细检查了主机文件是否正常-抱歉,我忘了提到我尝试过使用&不使用NameVirtualHost*:80,但没有运气。我会再尝试一下哦,只是注意到你的虚拟主机行不匹配。将:80添加到第二个。我应该感谢你的帮助,但这并不是一个语法错误。你的建议与问题无关,请仔细看问题
<VirtualHost localhost>  for localhost/mysite
<VirtualHost 127.0.0.1> for mysite.local
<VirtualHost _default_>  for localhost/mysite