不知道如何更好地描述标题。问题是:
我为我的工作广泛使用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>
因此它在两个方向都“破碎”
谢谢,
杰夫
答案 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